Я купил Rapid SSL на name.com и использовал команду ниже для создания .csr
и .key
файлы:
sudo openssl req -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/server.key -out /etc/nginx/ssl/server.csr
Я ответил на все вопросы, которые задавала эта команда. Затем я предоставил .csr
на name.com и успешно сгенерировал серверные / промежуточные сертификаты. Затем я выполнил шаги, упомянутые в https://knowledge.rapidssl.com/support/ssl-certificate-support/index?page=content&actp=CROSSLINK&id=SO17664 и установил этот сертификат на моем сервере nginx. Мне также удалось открыть HTTPS-версию своего сайта.
Затем, чтобы попробовать что-то еще, я снова запустил команду (sudo openssl req ...) с другими ответами на этот раз и сгенерировал новый server.key
файл. К сожалению, я не сохранил первый server.key
файл.
Опубликовать модификацию файла nginx .conf, когда я попытался перезапустить сервер, я получил следующую ошибку:
nginx: [emerg] SSL_CTX_use_PrivateKey_file("/etc/nginx/ssl/server.key") failed (SSL: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch)
Увидев эту ошибку, я понял, что перезаписал server.key
файл. Я попытался сгенерировать ключ еще раз с теми же ответами, которые дал впервые, но все равно возникает ошибка несоответствия ключа.
Мой сервер nginx все еще работает, и я могу получить доступ к HTTPS-версии сайта, но моя жизнь в беде без закрытого ключа. Я прошел по ссылкам ниже, но все еще застрял:
Я подтвердил, выполнив следующие команды, что мой сертификат (выданный name.com) и закрытые ключи не совпадают:
openssl x509 -noout -modulus -in server_orig.cert | openssl md5
openssl rsa -noout -modulus -in server.key | openssl md5
Могу ли я что-нибудь сделать, чтобы узнать закрытый ключ, поскольку Nginx все еще работает? Если нет, должен ли я получить повторно выданный сертификат Geotrust?
Любая помощь будет принята с благодарностью.
В зависимости от вашего поставщика, они могут либо настаивать на повторной оплате, либо просто делать это бесплатно.
Я бы не стал тратить время на поиск сертификата в оперативной памяти nginx. Конечно, если https все еще работает, приватный ключ все еще должен быть там, и извлечение из ОЗУ возможно, но если вы никогда не делали этого раньше, то просто покупка другого сертификата - более быстрый вариант.
@AAgg, просто перевыпустите сертификат у своего поставщика сертификатов с новым CSR и ключом.
Я делал это несколько раз без каких-либо проблем.