Чтобы использовать SSL_CTX_use_PrivateKey_file, вам необходимо иметь закрытый ключ в формате PEM. Файл должен содержать только один закрытый ключ. При использовании данной функции, вы должны указать SSL контекст, в который вы хотите установить закрытый ключ, и файл, содержащий закрытый ключ.
Если вы хотите использовать SSL_CTX_use_PrivateKey_file, необходимо предварительно создать SSL контекст. Это можно сделать с помощью функции SSL_CTX_new.
SSL контекст содержит информацию о настройках SSL соединения, таких как протокол, алгоритмы шифрования, сертификаты и закрытые ключи.
Когда закрытый ключ успешно установлен, SSL контекст может использоваться для создания зашифрованного соединения с помощью функции SSL_accept или SSL_connect.
Для проверки ошибок при использовании функции, можно использовать функцию ERR_print_errors_fp. Она печатает все ошибки OpenSSL в поток вывода.
При перезагрузке nginx или apache (httpd)
возникает ошибка в лог файле /var/log/nginx/error.log
1 |
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:
1 |
openssl rsa -in /etc/nginx/ssl/private.key -out /etc/nginx/ssl/private.key |
где: /etc/nginx/ssl/private.key – путь до вашего приватного ключа
В ходе выполнения команды у вас попросят ввести текущий пароль для приватного ключа:
1 2 |
Enter pass phrase for private.key: writing RSA key |