Центр Диагностики & База Системных Ошибок

Решения для Windows Server, Active Directory, 1С, СУБД, Linux, Cisco, MikroTik и IP-телефонии.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, баз данных и сетевого оборудования. Перед выполнением действий обязательно создайте резервную копию. При отсутствии необходимой квалификации обратитесь к ИТ-специалистам.
Nginx Error: SSL_CTX_use_PrivateKey_file failed: error:0B080074:x509 key values mismatch Linux / DevOps

Nginx: SSL_CTX_use_PrivateKey_file failed: key values mismatch — Решение

Обновлено: 18.08.2026  ·  Официальная база знаний

При попытке запуска Nginx или применении новой конфигурации с SSL-сертификатом сервер аварийно останавливается: SSL_CTX_use_PrivateKey_file("/etc/ssl/cert.key") failed (SSL: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch).

Компонент SSLДиректива NginxСуть несовпадения
Публичный сертификатssl_certificateСодержит публичный ключ и подпись Удостоверяющего Центра (CA)
Закрытый ключssl_certificate_keyСгенерирован от другого CSR или другого приватного ключа
Математический модуль (Modulus)Хеш модуля RSA/ECDSAМодуль сертификата НЕ совпадает с модулем ключа
  • Веб-сервер не может пройти валидацию криптографической пары при инициализации SSL-контекста.
  • Сбой часто происходит после ручного перевыпуска SSL-сертификата без обновления соответствующего файла закрытого ключа.
  1. Проверьте пути к файлам сертификата и закрытого ключа в конфигурационном файле виртуального хоста:
    ssl_certificate     /etc/ssl/certs/example.com.crt;
    ssl_certificate_key /etc/ssl/private/example.com.key;
  2. Сравните MD5-хеши модулей открытого сертификата и закрытого ключа с помощью утилиты openssl:
    # Хеш публичного сертификата:
    openssl x509 -noout -modulus -in /etc/ssl/certs/example.com.crt | openssl md5
    
    # Хеш закрытого ключа:
    openssl rsa -noout -modulus -in /etc/ssl/private/example.com.key | openssl md5
  3. Если хеши НЕ совпадают, этот ключ физически не принадлежит данному сертификату. Найдите правильный .key файл, который использовался при создании CSR-запроса.
  4. Если используется сертификат на базе эллиптических кривых (ECDSA):
    openssl ec -noout -modulus -in /etc/ssl/private/example.com.key | openssl md5
    openssl x509 -noout -pubkey -in /etc/ssl/certs/example.com.crt | openssl md5
  5. Если правильный ключ утерян, выполните процедуру Reissue (перевыпуск) сертификата в вашем УЦ (Let's Encrypt / Sectigo / DigiCert), создав новую пару ключей.
  6. После установки корректной пары перезапустите Nginx: sudo nginx -t && sudo systemctl restart nginx.
Let's Encrypt Инсайт: В Certbot всегда используйте файлы из каталога /etc/letsencrypt/live/domain/: fullchain.pem в качестве ssl_certificate и privkey.pem в качестве ssl_certificate_key. Никогда не указывайте cert.pem вместо fullchain.pem!
Практический опыт инженера: Частая ошибка: путаница файлов при настройке wild-card сертификата рядом с одиночным доменом. Всегда проверяйте соответствие хешей `openssl md5` скриптами авто-деплоя перед вызовом `nginx -s reload`.

Частые вопросы (FAQ)

Почему модули ключа и сертификата должны быть одинаковыми?

Открытый сертификат содержит публичный ключ, который является математической парой закрытого ключа. Совпадение их хешей modulus доказывает, что сертификат и ключ принадлежат одной ключевой паре.

Можно ли восстановить закрытый ключ из имеющегося сертификата?

Математически невозможно восстановить приватный ключ из публичного сертификата благодаря стойкости алгоритмов асимметричной криптографии (RSA/ECC).

В чем разница между cert.pem и fullchain.pem?

cert.pem содержит только сертификат вашего домена. fullchain.pem включает ваш сертификат плюс всю цепочку промежуточных сертификатов (Intermediate CA), необходимых для доверия со стороны браузеров.

Как проверить дату истечения срока действия SSL сертификата через CLI?

Выполните команду: openssl x509 -enddate -noout -in /path/to/certificate.crt.