🚦 Версии протоколов: Что оставить?
❌ SSL v2, SSL v3: Мертвы. Дырявые. Отключать везде.
⚠️ TLS 1.0, 1.1: Устарели (Deprecation в 2020/2021). Отключать, если не поддерживаете клиентов времен IE 8/Android 4.
✅ TLS 1.2: Золотой стандарт. Должен быть включен везде. (Обязательно используйте шифры AEAD/GCM).
🚀 TLS 1.3: Самый быстрый и безопасный. Убрали лишние шаги в рукопожатии (1-RTT). Включаем в приоритет.
📂 Форматы файлов
Часто файлы имеют разные расширения, но внутри одно и то же.
- PEM (
.pem, .crt, .cer, .key): Текстовый формат (ASCII), начинается с -----BEGIN.... Самый частый в Linux/Nginx/Apache.- DER (
.der, .cer): Бинарный формат. Часто встречается в Java и Windows.- PFX/P12 (
.pfx, .p12): Контейнер-сейф. Хранит и сертификат, и приватный ключ, и цепочку. Часто используется в Windows и для импорта/экспорта.🛠 OpenSSL: Команды на каждый день
Самая полезная часть. Копируй и вставляй.
1. Проверка удаленного сервера
Посмотреть, какой сертификат отдает сайт, и проверить цепочку:
openssl s_client -connect domain.com:443 -showcerts
Лайфхак: Добавь
-servername domain.com, если на IP висит несколько сайтов (SNI).Посмотреть только дату истечения сертификата на сайте:
echo | openssl s_client -servername domain.com -connect domain.com:443 2>/dev/null | openssl x509 -noout -dates
2. Работа с локальными файлами
Прочитать содержимое сертификата (кто выдал, кому, когда истекает):
openssl x509 -in cert.pem -text -noout
Проверить, соответствует ли приватный ключ сертификату (хеши должны совпасть):
openssl x509 -noout -modulus -in cert.pem | openssl md5
openssl rsa -noout -modulus -in privkey.pem | openssl md5
3. Генерация CSR (Запрос на сертификат)
Создать ключ и запрос (CSR) одной командой:
openssl req -new -newkey rsa:2048 -nodes -keyout domain.key -out domain.csr
4. Конвертация форматов
PEM -> PFX (для IIS/Windows):
openssl pkcs12 -export -out domain.pfx -inkey domain.key -in domain.crt -certfile root-ca.crt
PFX -> PEM (достать ключ и серт):
# Только ключ (без пароля)
openssl pkcs12 -in domain.pfx -nocerts -nodes -out domain.key
# Только сертификат
openssl pkcs12 -in domain.pfx -nokeys -out domain.crt
🧠 Анатомия Cipher Suite
Что значит строка:
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384?1. TLS: Протокол.
2. ECDHE: Key Exchange (Как договорились о ключах). Эллиптические кривые, Ephemeral (генерируется каждый раз — это PFS).
3. RSA: Authentication (Проверка подлинности). Сертификат RSA.
4. AES_256_GCM: Bulk Encryption (Чем шифруем данные). Алгоритм AES, 256 бит, режим GCM (быстро и безопасно).
5. SHA384: MAC/PRF (Целостность). Хеширование для проверки пакетов.
Совет: Старайтесь использовать GCM или ChaCha20-Poly1305. Избегайте режимов CBC в старых протоколах.
🛡 Чек-лист
1. HSTS (HTTP Strict Transport Security): Заголовок, заставляющий браузер ходить только по HTTPS.
-
Strict-Transport-Security: max-age=31536000; includeSubDomains2. Forward Secrecy (PFS): Если украдут ключ сервера, прошлый трафик не расшифруют. Требует шифров ECDHE или DHE.
3. OCSP Stapling: Сервер сам шлет статус валидности сертификата, ускоряя загрузку страницы для клиента.
4. CAA Record: DNS-запись, указывающая, каким CA разрешено выдавать сертификаты для вашего домена.








