A melhor maneira de redirecionar todo o HTTP para HTTPS no IIS

12

Queremos que TODOS os sites em nosso servidor da Web (IIS 10) imponham SSL (isto é, redirecionam HTTP para HTTPS).

No momento, estamos 'Exigindo SSL' em cada site e configuramos um manipulador 403 error para executar um 302 redirect no endereço https desse site específico.

Isso funciona muito bem. Mas é uma dor a fazer para cada site, há muito espaço para erro humano.

Idealmente, gostaria de configurar um 301 redirect permanente em todos os HTTP://* to HTTPS://*

Existe uma maneira simples de fazer isso no IIS?

    
por userSteve 21.01.2018 / 12:50

2 respostas

17

O Módulo de Regravação de URL do IIS para o IIS7 + pode ser seu amigo. O módulo pode ser baixado aqui: link

Depois de instalado, você pode criar um redirecionamento de host inteiro. Depois que o módulo for instalado, você terá um aplicativo de regravação de URL no gerenciador do IIS. Clique nele e, em seguida, em Adicionar Regra (s) ... e selecione Regra em branco .

Corresponder URL
URL solicitada: Matches the Pattern
Usando: Wildcards
Padrão : * e Ignore case

Condições
Agrupamento lógico: Match Any
Entrada : {HTTPS}
Tipo: Matches the Pattern
Padrão: off

Variáveis do servidor
Deixe em branco.

Ação
Tipo de ação: Redirect
URL de redirecionamento: https://{HTTP_HOST}{REQUEST_URI}
Anexar string de consulta: marcado Tipo de redirecionamento: Permanent (301)

Aplique a regra e execute IISReset (ou clique em Reiniciar no Gerenciador do IIS)

Como alternativa, após instalar o módulo, você pode modificar o web.config da seguinte forma:

<rewrite>
    <rules>
        <rule name="Redirect to https" enabled="true" patternSyntax="Wildcard" stopProcessing="true">
            <match url="*" negate="false" />
            <conditions logicalGrouping="MatchAny">
                <add input="{HTTPS}" pattern="off" />
            </conditions>
            <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" />
        </rule>
    </rules>
</rewrite>
    
por 24.01.2018 / 04:42
0

Minha pesquisa mostra que essa pode ser uma maneira melhor de redirecionar:

<rewrite>
    <rules>
        <rule name="http to https" stopProcessing="true">
            <match url="(.*)" />
            <conditions>
                <add input="{HTTPS}" pattern="^OFF$" />
            </conditions>
            <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" />
        </rule>
    </rules>
</rewrite>
    
por 10.06.2018 / 19:46