Я получил новый сертификат SSL от GoDaddy, а старый - от Comodo.
Содержание /etc/ssl/private/pure-ftpd.pem
являются следующими:
-----BEGIN PRIVATE KEY-----
PRIVATE KEY USED TO CREATE THE CSR
-----END PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
CONTENTS OF CRT FILE RECEIVED BY GODADDY
-----END CERTIFICATE-----
После обновления содержимого файла я перезапустил pure-ftpd
затем проверил статус:
/etc/init.d/pure-ftpd restart
/etc/init.d/pure-ftpd status
[ ok ] pure-ftpd is running.
Вроде все хорошо. Теперь я пытаюсь проверить новый сертификат:
редактировать: Я добавил "связку" CRT
файл, предоставленный GoDaddy, в /etc/ssl/certs
, и теперь я получаю этот вывод (но все еще не могу перезапустить apache2
из-за ошибок, показанных ниже)
openssl verify -CApath /etc/ssl/certs /etc/ssl/private/pure-ftpd.pem
pure-ftpd.pem: OK
Затем я попытался перезапустить apache2
(предположим, что это укажет системе использовать новый сертификат):
apache2ctl graceful
httpd not running, trying to start
Action 'graceful' failed.
The Apache error log may have more information.
Журнал ошибок Apache:
[error] Unable to configure RSA server private key
[error] SSL Library Error: 185073780 error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch
Казалось бы, соответствующие части /etc/apache2/sites-available/default-ssl
: Есть ли PEM
файл объявлен как SSLCertificateFile
нужно как-то обновить, если я создал новый закрытый ключ? (Если да, то что именно в нем должно быть и как этого добиться?)
SSLCertificateFile /etc/ssl/certs/my.server.net.pem
SSLCertificateKeyFile /etc/ssl/private/my.server.net.key
Я также пробовал использовать эти команды для сравнения модуля каждого файла, и они одинаковы:
openssl x509 -noout -modulus -in /etc/ssl/private/pure-ftpd.pem | openssl md5
openssl rsa -noout -modulus -in /etc/ssl/private/my.server.net.key | openssl md5
Может кто-то указать мне верное направление?
Другое редактирование: Когда я получаю доступ к FTP-серверу через клиента, такого как FileZilla, меня приветствуют учетные данные для нового сертификата GoDaddy. Так что это здорово, но эта проблема сводит меня с ума!
Нужно ли каким-то образом обновлять файл PEM, объявленный как SSLCertificateFile, если я создал новый закрытый ключ?
Да, поскольку это сертификат, который означает открытую часть ключа (и другие данные, такие как даты действия), поэтому эта открытая часть должна соответствовать частной части в файле .key. Вы не можете сгенерировать их отдельно.
Если то, что вы даете в начале, является вашим новым сертификатом, вы должны создать 2 файла my.server.net.pem
и .key
поместив часть внутри BEGIN PRIVATE KEY / END PRIVATE KEY (включая эти строки) в файл .key, а следующую часть (с заголовками) в файл .pem. Однако для работы Apache2 TLS в конце это также зависит от CN + SAN внутри вашего сертификата. Если это сделано только для имени ftp.myserver.whatever
а также не для www.myserver.whatever
тогда браузеры отобразят предупреждение (из-за несоответствия имени).