Eu 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, obtive um alias (FQDN: CoolName.domain) para esse servidor criado no DNS. Os certificados TLS foram gerados pela autoridade de certificação interna. No IIS, liguei a porta 443 aos nomes de host CoolName.domain
e CoolName
com o certificado.
Eu quero ser capaz de redirecionar meus aplicativos existentes do domínio antigo (ie. server1.domain/app1
) para o alias (ie. CoolName.domain/app1
) sempre que as pessoas digitarem no domínio antigo. Também force HTTPS se eles estiverem usando HTTP.
Minha tentativa foi usar o módulo HTTP Redirect no nível do servidor dentro do IIS Manager e preenchi o seguinte:
Redirecionar 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://imgur.com/a/88204vp
Quando visito os links a seguir, eles falham ao redirecionar:
http://server1
http://CoolName
http://CoolName.domain
Só http://server1.domain
acabei redirecionando 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 redirecionava. Tentei desmarcar a caixa Redirecionar todas as solicitações para o destino exato (em vez de relativo ao destino) em #2.
É possível fazer meu requisito apenas com o redirecionamento HTTP?
Esqueci de mencionar em minha postagem inicial que estava recebendo erros relacionados a "Muitos redirecionamentos HTTP". Acontece que ativar o redirecionamento HTTP E redirecionar para o MESMO site (mesmo com um alias diferente) 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, então você pode redirecionar para HTTPS configurado em seu site IIS original. Para fazer isso:
Depois de aplicar as configurações, aguarde alguns minutos para que as alterações se propaguem 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 no navegador do cliente antes de testar os links.
Teste. Acabei usando os links conforme meu post inicial:
http://servidor1
http://servidor1.domínio
http://CoolName
http://CoolName.domain
Esses links devem acabar redirecionando para https ://CoolName.domain.
Como nota 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_do_servidor]\Usuários
Verifique se a autenticação do Windows está configurada corretamente