Для тех, кто использует ASP.NET MVC. Вы можете использовать следующее для принудительной установки SSL / TLS через HTTPS на весь сайт двумя способами:
Трудный путь
1 - Добавьте атрибут RequireHttpsAttribute к глобальным фильтрам:
GlobalFilters.Filters.Add(new RequireHttpsAttribute());
2 - Принудительно использовать токены Anti-Forgery для использования SSL / TLS:
AntiForgeryConfig.RequireSsl = true;
3 - Требовать, чтобы Cookies требовали HTTPS по умолчанию, изменив файл Web.config:
<system.web>
<httpCookies httpOnlyCookies="true" requireSSL="true" />
</system.web>
4 - Используйте пакет NWebSec.Owin NuGet и добавьте следующую строку кода, чтобы включить Strict Transport Security для всего сайта. Не забудьте добавить директиву Preload ниже и отправить свой сайт на сайт HSTS Preload . Больше информации здесь и здесь . Обратите внимание, что если вы не используете OWIN, существует метод Web.config, о котором вы можете прочитать на сайте NWebSec .
// app is your OWIN IAppBuilder app in Startup.cs
app.UseHsts(options => options.MaxAge(days: 30).Preload());
5 - Используйте пакет NWebSec.Owin NuGet и добавьте следующую строку кода, чтобы включить закрепление с открытым ключом (HPKP) на сайте. Больше информации здесь и здесь .
// 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 - Включите схему https в любой используемый URL. HTTP-заголовок Content Security Policy (CSP) и Subresource Integrity (SRI) не работают хорошо, когда вы имитируете схему в некоторых браузерах. Лучше быть явно о HTTPS. например
<script src="https://ajax.aspnetcdn.com/ajax/bootstrap/3.3.4/bootstrap.min.js"></script>
Легкий путь
Используйте шаблон проекта ASP.NET MVC Boilerplate Visual Studio для создания проекта со всем этим и многим другим встроенным. Вы также можете просмотреть код на GitHub .