Ошибка Nginx - key values mismatch

При попытке запуска nginx может возникнуть следующее сообщение об ошибке: nginx: [emerg] SSL_CTX_use_PrivateKey_file("/etc/ssl/private/cert1.key") failed (SSL: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch)

Основной причиной появления данного сообщения об ошибке является несовпадение закрытого ключа и сертификата при попытке включить SSL в экземпляре nginx. Для проверки закрытого и открытого ключей nginx сравнивает модуль каждого из них. Если они не совпадают, вы получите эту ошибку.

Сравниваемые ключ и сертификат можно найти в конфигурации сервера nginx вашего сайта:

  • Закрытый ключ определяется как ssl_certificate_key
  • Сертификат определяется как ssl_certificate

Проверьте модуль закрытого ключа (пропустив его через md5sum, чтобы создать строку меньшего размера для визуального сравнения):

Пример вывода

И сравнить его с модулем из сертификата:

Пример

Как видно, в моем случае дайджесты отличаются. Что может быть причиной такого разного модуля? В частности, это может быть сертификат, сгенерированный на основе другого ключа. Но также, если вы извлекли сертификат из пакета PKCS#12, возможно, придется изменить порядок сертификатов в сертификате, извлеченном из пакета, так как модуль будет вычислен из первого сертификата, найденного в файле. При извлечении сертификата можно сначала извлечь только сертификат клиента с помощью команды -clcerts, а затем объединить его с сертификатами ЦС с помощью команды -cacerts, чтобы создать сертификат с полной цепочкой и правильным порядком сертификатов.

После устранения несоответствия сертификатов вы должны иметь возможность подтвердить соответствие модулей перед успешным запуском nginx:

Надеюсь, это поможет вам быстро решить проблему с SSL в nginx!

Понравилась статья? Поделиться с друзьями:
Добавить комментарий