Назад | Перейти на главную страницу

Nginx работает с SSL, но ошибка несоответствия закрытого ключа

Раньше работал

Я купил 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-версию своего сайта.

PrivKey перезаписан по ошибке

Затем, чтобы попробовать что-то еще, я снова запустил команду (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 все еще работает.

Мой сервер nginx все еще работает, и я могу получить доступ к HTTPS-версии сайта, но моя жизнь в беде без закрытого ключа. Я прошел по ссылкам ниже, но все еще застрял:

  1. https://stackoverflow.com/questions/26191463/ssl-error0b080074x509-certificate-routinesx509-check-private-key-values
  2. Несоответствие значений ключей выпуска SSL-сертификата nginx

Модуль PrivKey! = Модуль PubKey

Я подтвердил, выполнив следующие команды, что мой сертификат (выданный 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 и ключом.

Я делал это несколько раз без каких-либо проблем.