Fingindo HTTPS no IIS 6

1

Estou procurando uma maneira de informar ao IIS 6 que, embora uma solicitação tenha sido http, ela pode ser considerada como https.

O HTTPS é gerenciado antes que a solicitação chegue no servidor de aplicativos. Com o Tomcat, usamos o RemoteIpValve com o cabeçalho http X-Forwarded-Proto para informar ao Tomcat se a conexão é segura ou não.

Existe uma maneira de fazer isso no IIS? Poderia um filtro Isapi ser uma solução?

Obrigado por todas as sugestões.

[EDIT:] Para ser mais preciso: A arquitetura é a seguinte, para o nosso gato:

    USER
      |
     LoadBalancer (KeepAlived)
     |  |
     |  '- Apache (SSL)
     |
     HaProxy
     |
     |
     Tomcat

Quando um usuário faz uma solicitação https no tomcat, a solicitação passa pelo apache em que o https é decodificado (o Apache adiciona o X-Forwarded-Proto: https header). Em seguida, a solicitação é redirecionada para o Tomcat por meio do HaProxy (Http LoadBalancer).

Espero que seja um pouco mais claro.

PS: Por favor, desculpe meu inglês, eu não pratico o suficiente.

    
por Cédric Couralet 28.03.2011 / 14:42

1 resposta

3

Como exemplo, para o IIS7, o ARR (Application Request Routing) + o ARR Helper fazem isso adicionando cabeçalhos x como você está fazendo com o Tomcat.

Você precisaria de um filtro ISAPI para reconfigurar o x-header de volta para os valores do cabeçalho original na caixa IIS6. A Microsoft não tem uma solução IIS6 para reescrever o cabeçalho, mas você pode ver se o cliente BigIP fará isso por você ou então escrever o seu próprio.

O IIS7 já tem soluções nativas, portanto, se você precisar escolher entre desenvolver seu próprio Filtro ISAPI (não é uma tarefa fácil) ou atualizar, isso pode ser uma oportunidade para considerar a atualização do seu ambiente.

    
por 28.03.2011 / 16:07

Tags