Knowledge Base

Проверка TLS-сертификата через openssl

Анатомия TLS-сертификата

Категория: SSL/TLS · Риск: low

Анатомия TLS-сертификата

Сертификат X.509 содержит:

Полный вывод openssl s_client

CONNECTED(00000003)
depth=2 C=US, O=Internet Security Research Group, CN=ISRG Root X1
depth=1 C=US, O=Let's Encrypt, CN=R3
depth=0 CN=example.com
verify return:1
---
Certificate chain
 0 s:CN=example.com
   i:C=US, O=Let's Encrypt, CN=R3
 1 s:C=US, O=Let's Encrypt, CN=R3
   i:C=US, O=Internet Security Research Group, CN=ISRG Root X1

Три `depth` = полная цепочка. Только `depth=0` = проблема с промежуточным CA.

Проверка SAN (Subject Alternative Names)

openssl x509 -in cert.pem -noout -ext subjectAltName

Вывод должен содержать все домены, для которых действителен сертификат:

X509v3 Subject Alternative Name:
    DNS:example.com, DNS:www.example.com

Автообновление Let's Encrypt

# Проверить статус автообновления
certbot renew --dry-run

# Cron для обновления (ежедневно в 02:30)
30 2 * * * certbot renew --quiet --post-hook "systemctl reload nginx"

Минимальная безопасная конфигурация TLS в Nginx

ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
ssl_prefer_server_ciphers off;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1d;
ssl_stapling on;
ssl_stapling_verify on;