Forçar acesso SSL (https) através do web.config

O web.config é um arquivo de configuração para aplicações ASP.NET da plataforma Windows. Semelhante a ele podemos citar o .htaccess, que tem objetivos próximos ao web.config só que em plataforma Windows utilizando Apache.

É através do web.config que podemos fazer com que todos os acessos HTTP do seu site em ambiente Windows sejam direcionados ao HTTPS. Para tanto, para que seu site possa rodar as aplicações através desse protocolo, é necessário ter instalado um certificado SSL.


Você pode conferir todos os detalhes sobre certificados SSL nos seguintes links:

https://www.lucanet.com.br/lets-encrypt (Let's Encrypt, Gratuito)

https://www.lucanet.com.br/certificado-ssl (Comodo/Sectigo, Pago)

Redirecionar para HTTPS no web.config

Abaixo está destacado o caminho correto para inserir a regra que faz com que todos os acessos sejam tratados pelo protocolo de segurança. Vale lembrar que demais informações do arquivo são colocadas para deixar mais claro o caminho correto, mas que, dependendo da sua aplicação, podem ter conter outras regras já estabelecidas.

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
<rewrite>
   <rules>
     <rule name="Redirect to https" stopProcessing="true">
       <match url="(.*)" />
         <conditions>
          <add input="{HTTPS}" pattern="off" ignoreCase="true" />
         </conditions>
          <action type="Redirect" url="https://dominiohospedado.com.br{REQUEST_URI}" redirectType="Permanent" appendQueryString="false" />
     </rule>
   </rules>
</rewrite>
    </system.webServer>
</configuration>


Basta inserir o trecho inteiro da rule (linhas 5 a 13) dentro da tag de rewrite (que é responsável por fazer a regravação de URLs do site) para que a configuração passe a funcionar.