Как исправить ошибку «Bad Password Read» при использовании приватного ключа в Nginx

SSL_CTX_use_PrivateKey_file(«/etc/nginx/ssl/private.key») failed (SSL: error:0906406D:PEM routines:PEM_def_callback:problems getting password error:0907B068:PEM routines:PEM_READ_BIO_PRIVATEKEY:bad password read error:140B0009:SSL routines:SSL_CTX_use_PrivateKey_file:PEM lib)

При перезагрузке nginx или apache (httpd)

возникает ошибка в лог файле /var/log/nginx/error.log

SSL_CTX_use_PrivateKey_file("/etc/nginx/ssl/private.key") failed (SSL: error:0906406D:PEM routines:PEM_def_callback:problems getting password error:0907B068:PEM routines:PEM_READ_BIO_PRIVATEKEY:bad password read error:140B0009:SSL routines:SSL_CTX_use_PrivateKey_file:PEM lib)

При создании вами приватного ключа, вы создали пароль для приватного ключа.

Чтобы перезагрузить nginx, нужно удалить пароль из приватного ключа.

Remove the key pass phrase:

openssl rsa -in /etc/nginx/ssl/private.key -out /etc/nginx/ssl/private.key

где: /etc/nginx/ssl/private.key — путь до вашего приватного ключа

В ходе выполнения команды у вас попросят ввести текущий пароль для приватного ключа:

Enter pass phrase for private.key:
writing RSA key

Проблема

Ошибка возникает при попытке использования приватного ключа (private.key) в конфигурации nginx. Сообщение об ошибке следующее:

SSL_CTX_use_PrivateKey_file("/etc/nginx/ssl/private.key") failed (SSL: error:0906406D:PEM routines:PEM_def_callback:problems getting password error:0907B068:PEM routines:PEM_READ_BIO_PRIVATEKEY:bad password read error:140B0009:SSL routines:SSL_CTX_use_PrivateKey_file:PEM lib)

Это означает, что пароль, используемый для расшифровки закрытого ключа, неверен или отсутствует.


Причины возникновения ошибки

  1. Неверный пароль: Приватный ключ защищён паролем, который указан неправильно или вообще не указан.
  2. Файл поврежден: Файл private.key мог быть повреждён или случайно изменён.
  3. Проблемы с правами доступа: Возможно, права доступа к файлу недостаточны, и nginx не может прочитать файл.

Решение

Проверка правильности пароля

Проверьте правильность введённого пароля, открыв закрытый ключ вручную командой OpenSSL:

openssl rsa -in /etc/nginx/ssl/private.key -check

Система запросит пароль. Если пароль верный, вывод покажет подробную информацию о ключе.

Убедитесь, что используется правильный ключ

Убедитесь, что путь к файлу верен и указанный ключ действительно принадлежит сертификату.

Проверить совпадение сертификата и приватного ключа можно следующим образом:

openssl x509 -noout -modulus -in /etc/nginx/ssl/cert.pem | openssl md5
openssl rsa -noout -modulus -in /etc/nginx/ssl/private.key | openssl md5

Хэши должны совпасть.

Проверьте разрешения файла

Права доступа к файлам ключей должны быть установлены правильно. Рекомендуется сделать владельца root и ограничить доступ:

chown root:root /etc/nginx/ssl/*
chmod 600 /etc/nginx/ssl/*

Эти команды гарантируют, что ключи будут защищены должным образом.


Итоги

При возникновении указанной ошибки проверьте следующие моменты:

  • Пароль, указанный для дешифрования закрытого ключа, является правильным.
  • Путь к файлу ключа установлен верно.
  • Ключи соответствуют друг другу (сертификат и приватный ключ).
  • Права доступа к файлам настроены соответствующим образом.

Исправив одну из указанных ошибок, повторите попытку запуска nginx.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.