Como aplicar elegantemente o SSL no IIS 6.0

4

Eu tenho um site em execução no IIS que tem um certificado SSL aplicado. Gostaríamos de impor o uso de HTTPS para o site, o que é feito facilmente marcando a caixa "Exigir Canal Seguro", mas isso quebrará imediatamente a capacidade das pessoas se conectarem por HTTP (conforme planejado).

O que eu gostaria de fazer é encontrar uma maneira de redirecionar automaticamente as pessoas de HTTP - > HTTPS se eles digitarem a coisa errada (ou se conectar de um antigo marcador).

Existe uma maneira de fazer isso sem criar um segundo site no IIS?

    
por kdmurray 20.05.2009 / 23:29

3 respostas

3

Se você precisar fazer isso no nível do servidor, terá que criar outro site e fazer com que ele encaminhe o site https.

Se você puder editar o código, poderá não impingir o ssl no nível do servidor, em vez disso, poderá fazê-lo em seu site detectando se o URL inicia com http: e redirecionando para o mesmo URL com https: em vez disso.

    
por 20.05.2009 / 23:34
8

Eu postei isso em StackOverflow

Se o servidor / site / vdir for configurado usando a configuração "Exigir Canal Seguro", a resposta do servidor será "403.4 Proibido: o SSL é necessário para visualizar este recurso". erro ou um "403.5 Proibido: SSL 128 é necessário para visualizar este recurso.".

Você pode personalizar o erro 403.4 ou 403.5 para redirecionar de volta para HTTPS. Crie um VDIR em seu site com SEM Requisito SSL ( ** Isso é Importante ) - Eu uso "CustomError". Crie um arquivo ASP dentro desse diretório chamado 403_4_Error.asp contendo o seguinte:

<%@ LANGUAGE="VBScript" %> 
<%
if Request.ServerVariables("HTTPS") <> "on" then
    sServer = Request.ServerVariables("SERVER_NAME")
    sScript = Request.ServerVariables("SCRIPT_NAME")
    sQuery  = Request.ServerVariables("QUERY_STRING")
    Response.Write("https://" & sServer & sScript & "?" & sQuery)
end if
%>

Edite a propriedade Custom Error do servidor / site / vdir para 403.4 / 403.5 e defina o MessageType como URL e o URL como "/CustomError/403_4_Error.asp".

Observe que o ASP é usado, você pode facilmente usar o ASP.net ou qualquer outra linguagem de script.

    
por 21.05.2009 / 00:04
0

Acabamos fazendo isso em nosso código de aplicativo; nossa classe de base verifica, desde cedo, se está em HTTP e redireciona para HTTPS, conforme necessário. Isso realmente depende de quanto você confia no código do aplicativo:)

    
por 02.06.2009 / 19:09

Tags