SSL (Secure Sockets Layer) и его преемник TLS (Transport Layer Security) — это криптографические протоколы, обеспечивающие безопасную передачу данных через сеть. HTTPS (HyperText Transfer Protocol Secure) — это HTTP, работающий поверх SSL/TLS, что гарантирует шифрование передаваемых данных.
Зачем нужен SSL/TLS
- Шифрование — предотвращает перехват и расшифровку данных злоумышленниками.
- Аутентификация — подтверждает подлинность сервера и клиента.
- Целостность данных — предотвращает подмену информации при передаче.
Установка SSL-сертификата в ASP.NET Core
Для включения HTTPS в ASP.NET Core требуется SSL-сертификат, который можно получить от центра сертификации (CA) или создать самоподписанный сертификат.
Пример использования HTTPS в Program.cs
:
var builder = WebApplication.CreateBuilder(args);
builder.WebHost.UseKestrel()
.UseHttps();
var app = builder.Build();
app.UseHttpsRedirection();
app.UseAuthorization();
app.MapControllers();
app.Run();
Принудительное перенаправление на HTTPS
Применение UseHttpsRedirection()
в ASP.NET Core автоматически перенаправляет HTTP-запросы на HTTPS.
HSTS (HTTP Strict Transport Security)
HSTS запрещает браузеру устанавливать соединение по HTTP после первого успешного соединения по HTTPS, снижая риск атак типа downgrade.
Добавление HSTS в Program.cs
:
app.UseHsts();
Сертификаты Let’s Encrypt
Let’s Encrypt предоставляет бесплатные SSL-сертификаты, которые можно автоматически обновлять. В ASP.NET Core можно использовать библиотеку Certify The Web или встроенный инструмент dotnet dev-certs
для локальной разработки.
Безопасность HTTPS
- Использовать современные версии TLS (1.2 и выше).
- Отключить устаревшие алгоритмы шифрования.
- Настроить
Secure
иHttpOnly
для кук. - Включить HSTS для предотвращения атак downgrade.
Использование HTTPS с SSL/TLS обеспечивает безопасную передачу данных и защищает пользователей от атак посредника (MITM).