Para aqueles que usam o ASP.NET MVC. Você pode usar o seguinte para forçar SSL / TLS sobre HTTPS em todo o site de duas maneiras:
O jeito difícil
1 - Adicione RequireHttpsAttribute aos filtros globais:
GlobalFilters.Filters.Add(new RequireHttpsAttribute());
2 - Forçar tokens antifalsificação a usar SSL / TLS:
AntiForgeryConfig.RequireSsl = true;
3 - Exija que os cookies exijam HTTPS por padrão, alterando o arquivo Web.config:
<system.web>
<httpCookies httpOnlyCookies="true" requireSSL="true" />
</system.web>
4 - Use o pacote NWebSec.Owin NuGet e adicione a seguinte linha de código para habilitar o Strict Transport Security em todo o site. Não se esqueça de adicionar a diretiva de pré-carregamento abaixo e enviar seu site para o site de pré-carregamento do HSTS . Mais informações aqui e aqui . Observe que, se você não estiver usando o OWIN, existe um método Web.config que você pode ler no site NWebSec .
// app is your OWIN IAppBuilder app in Startup.cs
app.UseHsts(options => options.MaxAge(days: 30).Preload());
5 - Use o pacote NWebSec.Owin NuGet e adicione a seguinte linha de código para ativar a Public Key Pinning (HPKP) em todo o site. Mais informações aqui e aqui .
// app is your OWIN IAppBuilder app in Startup.cs
app.UseHpkp(options => options
.Sha256Pins(
"Base64 encoded SHA-256 hash of your first certificate e.g. cUPcTAZWKaASuYWhhneDttWpY3oBAkE3h2+soZS7sWs=",
"Base64 encoded SHA-256 hash of your second backup certificate e.g. M8HztCzM3elUxkcjR2S5P4hhyBNf6lHkmjAHKhpGPWE=")
.MaxAge(days: 30));
6 - Inclua o esquema https em qualquer URL usado. O cabeçalho HTTP da Política de Segurança de Conteúdo (CSP) e o SRI (Subresource Integrity) não são bons quando você imita o esquema em alguns navegadores. É melhor ser explícito sobre HTTPS. por exemplo
<script src="https://ajax.aspnetcdn.com/ajax/bootstrap/3.3.4/bootstrap.min.js"></script>
O caminho fácil
Use o modelo de projeto do ASP.NET MVC Boilerplate Visual Studio para gerar um projeto com tudo isso e muito mais incorporado. Você também pode exibir o código no GitHub .