Что такое HTTPS?
HTTPS (Hypertext Transfer Protocol Secure, защищённый протокол передачи гипертекста) — защищённая версия HTTP, протокола обмена данными между веб-браузерами и серверами. HTTPS шифрует все данные между клиентом и сервером с помощью TLS (Transport Layer Security, безопасность транспортного уровня), защищая их от перехвата и изменения. В браузерах HTTPS обозначается значком замка и стал стандартом для всех сайтов, а не только для сайтов с финансовыми операциями.Как работает HTTPS
Рукопожатие TLS
1. Client Hello: браузер начинает соединение и сообщает поддерживаемые наборы шифров
2. Server Hello: сервер выбирает набор шифров и отправляет сертификат
3. Проверка сертификата: браузер проверяет цепочку сертификатов
4. Обмен ключами: асимметричное шифрование создаёт ключ сеанса
5. Защищённый канал: для передачи данных включается симметричное шифрование
Процесс шифрования
HTTP Request (unencrypted):
GET /login HTTP/1.1
Cookie: session=abc123
HTTPS Request (encrypted):
[Binary encrypted data - unreadable to interceptors]
Преимущества HTTPS
| Преимущество | Описание |
|---|---|
| Шифрование данных | Предотвращает прослушивание передаваемых данных |
| Целостность данных | Обнаруживает изменение данных при передаче |
| Аутентификация | Подтверждает подлинность сайта с помощью сертификатов |
| Преимущество для SEO | Google учитывает сайты HTTPS при ранжировании |
| Доверие пользователей | Значок замка сообщает посетителям о защищённом соединении |
| Соответствие требованиям | Необходимо для PCI-DSS, GDPR и других нормативных требований |
Типы сертификатов SSL/TLS
Проверка домена (DV)
- Подтверждает только владение доменом
- Выпускается за несколько минут
- Самая низкая стоимость (часто бесплатно через Let's Encrypt)
- Базовое шифрование
Проверка организации (OV)
- Подтверждает личность организации
- Выпускается за 1–3 дня
- Показывает название организации в сертификате
- Средний уровень доверия
Расширенная проверка (EV)
- Требует тщательной проверки организации
- Выпускается за 1–2 недели
- Самые сильные признаки доверия (исторически зелёная строка)
- Самая высокая стоимость
Внедрение HTTPS
Получение сертификата
1. Создайте запрос на подпись сертификата (CSR)
2. Отправьте CSR в центр сертификации (CA)
3. Пройдите проверку домена или организации
4. Получите и установите сертификат
Настройка сервера
server {
listen 443 ssl http2;
server_name example.com;
ssl_certificate /path/to/fullchain.pem;
ssl_certificate_key /path/to/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:...;
}
Перенаправление с HTTP на HTTPS
server {
listen 80;
server_name example.com;
return 301 https://example.com$request_uri;
}
Рекомендации по HTTPS
1. Используйте TLS 1.2 или новее: отключите старые протоколы (SSL 3.0, TLS 1.0/1.1)
2. Включите HSTS: принудительно используйте HTTPS через заголовок HTTP Strict Transport Security
3. Используйте стойкие шифры: отдавайте приоритет наборам ECDHE и AES-GCM
4. Включите OCSP stapling: ускорьте проверку сертификата
5. Продлевайте сертификаты заранее: избегайте простоев из-за истечения срока действия
6. Обновите смешанный контент: убедитесь, что все ресурсы загружаются через HTTPS
7. Контролируйте срок действия сертификата: используйте автоматизированный мониторинг
Распространённые проблемы HTTPS
- Предупреждения о смешанном контенте: HTTP-ресурсы загружаются на страницах HTTPS
- Несовпадение сертификата: сертификат не соответствует доменному имени
- Истёкшие сертификаты: срок действия сертификата закончился
- Проблемы цепочки: отсутствуют промежуточные сертификаты
- Ошибки протокола: протоколы клиента и сервера не совпадают
HTTPS больше не является необязательным: он необходим каждому сайту независимо от типа содержимого, поскольку обеспечивает безопасность, доверие и преимущества для SEO.