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)
Это означает, что пароль, используемый для расшифровки закрытого ключа, неверен или отсутствует.
Причины возникновения ошибки
- Неверный пароль: Приватный ключ защищён паролем, который указан неправильно или вообще не указан.
- Файл поврежден: Файл
private.key
мог быть повреждён или случайно изменён. - Проблемы с правами доступа: Возможно, права доступа к файлу недостаточны, и 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.