Tenho um servidor Windows 2016 (FQDN: server1.domain) em um domínio do Active Directory. Estou hospedando aplicativos da web de intranet no IIS.
Recentemente recebi um alias (FQDN: CoolName.domain) para esse servidor criado no DNS. Os certificados TLS foram gerados pela autoridade de certificação interna. No IIS, vinculei a porta 443 aos nomes de host CoolName.domain
e CoolName
ao certificado.
Quero poder redirecionar meus aplicativos existentes do domínio antigo (ou seja, server1.domain/app1
) para o alias (ou seja, CoolName.domain/app1
) sempre que as pessoas digitarem no domínio antigo. Force também o HTTPS se eles estiverem usando HTTP.
Minha tentativa foi usar o módulo HTTP Redirect no nível do servidor no IIS Manager e preenchi o seguinte:
Redirecione solicitações para este destino:https://CoolName.domain
Comportamento de redirecionamento: verificado
Redirect all requests to exact destination (instead of relative to destination)
Em seguida, pressione aplicar.
Uma referência de imagem das opções que fiz:https://i.stack.imgur.com/vgPld.jpg
Quando visito os links a seguir, eles não conseguiram redirecionar:
http://server1
http://CoolName
http://CoolName.domain
http://server1.domain
Acabei redirecionando apenas para https://CoolName.domain
.
Assim que tentei redirecionar qualquer URL que fosse além do domínio, como http://CoolName.domain/app1
, ele não redireciona. Eu tentei desmarcar a caixa paraRedirecionar todas as solicitações para o destino exato (em vez de em relação ao destino)em 2.
Meu requisito é possível apenas com o redirecionamento HTTP?
Responder1
Esqueci de mencionar em minha postagem inicial que estava recebendo erros relacionados a "Muitos redirecionamentos HTTP". Acontece que ativar o redirecionamento HTTP E o redirecionamento para o MESMO site (mesmo com um alias diferente) irá redirecionar infinitamente. Aparentemente, o IIS não é inteligente o suficiente para detectar se estava redirecionando para o mesmo domínio ou não. Vai saber. Acabei resolvendo meu problema seguindo as instruções aqui:https://stackoverflow.com/a/49460688
Para resumir: você está criando um site fictício e vinculando todo o tráfego HTTP da porta 80 nesse site no IIS e, em seguida, pode redirecionar para HTTPS configurado em seu site IIS original. Para fazer isso:
- O site padrão - Vincule todo o tráfego HTTP a uma porta livre que não seja 80 (ou você pode remover a ligação HTTP). Deixe as ligações HTTPS em paz.
- Crie um novo site no IIS (RedirectSite): Vincule todo o tráfego HTTP à porta 80.
- Nas configurações do DummySite, clique em Redirecionamento HTTP. Marque a caixa “Redirecionar solicitações para este destino”; no campo URL de destino, digite o domínio completo com HTTPS. por exemplo.https://CoolName.domain. Código HTTP 301. Nenhuma outra caixa precisa ser marcada, pois eu queria redirecionar tudo relativo ao domínio. Certifique-se de clicar em "Aplicar" para salvar suas configurações.
Depois de aplicar as configurações, aguarde alguns minutos para que as alterações sejam propagadas se você estiver usando a autenticação do Windows. Tive problemas com erros de autenticação (HTTP 40x.x) quando tentei os redirecionamentos. Limpe o cache do navegador do cliente antes de testar os links.
Teste. Acabei usando os links conforme minha postagem inicial:
http://servidor1
http://CoolName
Esses links devem acabar redirecionando parahttps://CoolName.domain.
Como observação lateral para ambos os sites, se aplicável:
Certifique-se de que IIS_IUSRS e IUSR tenham permissões de leitura/execução nos diretórios do site. O mesmo com [Nome_servidor]\Usuários
Verifique novamente se a autenticação do Windows está configurada corretamente