Файл с расширением .crt содержит сертификат в формате X.509: открытый ключ, данные о владельце, срок действия и подпись удостоверяющего центра (CA). Приватный ключ хранится отдельно — в файле .key или .pem — и никогда не покидает сервер.
Как работает сертификат
При установке HTTPS-соединения сервер отправляет браузеру файл .crt. Браузер проверяет подпись CA, срок действия и соответствие Common Name (CN) или Subject Alternative Names (SANs) адресу сайта. Если проверка пройдена — устанавливается зашифрованное соединение через TLS.
Один .crt файл может содержать цепочку сертификатов: сначала конечный (leaf) сертификат, затем один или несколько промежуточных CA. В Nginx это называется fullchain.pem — именно такой файл создаёт certbot от Let's Encrypt.
Форматы файлов сертификатов
| Расширение | Кодировка | Содержимое |
|---|---|---|
| .crt / .pem | Base64 (ASCII) | Сертификат и/или цепочка CA |
| .der / .cer | Бинарная DER | Сертификат (Windows-среды) |
| .key | Base64 | Приватный ключ (RSA/ECDSA) |
| .pfx / .p12 | Бинарная PKCS#12 | Сертификат + ключ, защищён паролем |
| .csr | Base64 | Certificate Signing Request — запрос на выпуск сертификата |
| .p7b / .p7c | Base64 PKCS#7 | Цепочка сертификатов без ключа |
Просмотр и конвертация
Команды для работы с .crt через openssl:
# Просмотр содержимого сертификата
openssl x509 -in certificate.crt -text -noout
# Проверка срока действия
openssl x509 -in certificate.crt -noout -dates
# Конвертация PEM → DER
openssl x509 -in cert.crt -outform DER -out cert.der
# Конвертация DER → PEM
openssl x509 -in cert.der -inform DER -out cert.pem
# Создание PKCS#12 из .crt + .key
openssl pkcs12 -export -out cert.pfx -inkey private.key -in certificate.crt
Настройка в Nginx и Apache
В Nginx для HTTPS минимально нужны два файла:
ssl_certificate /etc/ssl/certs/example.com.crt; # fullchain
ssl_certificate_key /etc/ssl/private/example.com.key;
В Apache директива SSLCertificateFile указывает на .crt, а SSLCertificateKeyFile — на .key. Если сертификат не содержит промежуточных CA, дополнительно используют SSLCertificateChainFile.
Неполная цепочка — самая частая причина ошибки SSL на мобильных устройствах и старых Android: браузеры не всегда подгружают промежуточные CA автоматически.
История
Формат X.509 разработан ITU-T в 1988 году как часть стандарта X.500 для каталогов. Версия X.509 v3 (1996) добавила расширения, включая SAN. PEM-формат (Privacy Enhanced Mail, RFC 1421, 1993) определил Base64-кодировку с маркерами -----BEGIN CERTIFICATE-----. Несмотря на то что PEM создавался для email, формат стал стандартным для сертификатов в Unix-системах.
На что обращать внимание
Срок действия DV-сертификатов Let's Encrypt — 90 дней. Автообновление через certbot настраивают в cron или systemd timer. Wildcard-сертификат (*.example.com) покрывает все поддомены одного уровня, но требует DNS-01 challenge вместо HTTP-01. OV и EV сертификаты требуют верификации организации — выпускаются 1–5 рабочих дней. Хранить приватный ключ нужно с правами 600 (chmod 600 private.key) — только владелец-пользователь может читать.
Проверить цепочку сертификатов онлайн позволяет Qualys SSL Labs (ssllabs.com/ssltest) — покажет рейтинг A–F и все проблемы конфигурации.