it-swarm.com.ru

"Сертификат открытого ключа и закрытый ключ не совпадают" при использовании сертификата, выданного Godaddy

Я пытаюсь установить сертификат GoDaddy SSL на новый балансировщик нагрузки, который я настраиваю в Amazon AWS. Первоначально я создал сертификат в Godaddy, используя программу keytool для прямой установки на сервер Glassfish 3.1 (Amazon linux AMI). У меня не было проблем с получением этой установки непосредственно на сервере. Теперь мне нужно переместить сертификат с веб-сервера на новый балансировщик нагрузки. Amazon требует, чтобы закрытый ключ и сертификаты были в формате PEM, поэтому я использовал инструмент «rekey» в GoDaddy для создания новых сертификатов. Когда я загружаю их на экране настройки балансировщика нагрузки в AWS Mgmt Console, я получаю сообщение об ошибке: «Сертификат открытого ключа и закрытый ключ не совпадают».

Вот как я создаю ключи:

$ openssl genrsa -des3 -out private.key 2048
$ openssl req -new -key private.key -out apps.mydomain.com.csr

Затем я отправляю файл .csr в GoDaddy во время процесса «смены ключа». Как только ключ завершен, я загружаю 2 вновь созданных сертификата (apps.mydomain.com.crt & Gd_bundle.crt). Я загружаю их, выбирая (Apache) в качестве типа сервера (я также пробовал «other» и «Cpanel», но все выглядят одинаково).

На этом этапе я удаляю шифрование из файла private.key с помощью следующей команды: 

$ openssl rsa -in private.key -out private.pem

На этом этапе я возвращаюсь в консоль AWS Mgmt, создаю балансировщик нагрузки, добавляю перенаправление защищенного сервера и помещаю содержимое следующих файлов в соответствующие поля на экране, где он просит настроить сертификат ssl:

private.pem --> Private Key
apps.mydomain.com.crt --> Public Key Certificate
Gd_bundle.crt --> Certificate Chain

Когда я нажимаю кнопку «Продолжить», я получаю сообщение об ошибке «Ошибка: сертификат открытого ключа и закрытый ключ не совпадают».

-Есть ли способ проверить, что я получаю верное сообщение об ошибке от Amazon? Мне кажется странным, что ключи не совпадают, когда я очень близко следую инструкциям GoDaddy.

Я пытался создать файл private.key без шифрования RSA до создания .csr, и это, похоже, не имеет никакого значения.

Я также предполагаю, что файлы .crt, которые я загружаю из GoDaddy, имеют формат .PEM, но я не уверен, как это проверить.

Есть идеи?

84
Felby

Похоже, проблема заключалась в том, как я копировал содержимое ключа и сертификатов в консоль управления AWS. Я использовал рабочий стол Ubuntu, работающий в Virtual Box на рабочем столе Windows 7; скопируйте и вставьте значения из экрана gedit в браузер, работающий на Windows. Как только я открыл ключ и файлы сертификатов в том же окне, что и веб-браузер (в данном случае Windows), сертификаты прошли нормально. Я предполагаю, что некоторые части файла не корректируются при использовании общей буфера обмена между клиентом Virtual Box и хостом. Дело закрыто.

23
Felby

Для меня это был простой двухэтапный шаг:

  1. Преобразовать закрытый ключ в PEM:

    openssl rsa -in yourdomain.key -outform PEM

  2. Преобразовать сертификат и комплект сертификатов в PEM :

    openssl x509 -inform PEM -in yourdomain.crt

    openssl x509 -inform PEM -in bundle.crt

61
Jonathon Hill

Просто для записи и для всех, кто пытается это выяснить:

yourdomain.key -> команда терминала: Sudo openssl rsa -in yourdomain.key -outform PEM -out yourdomain.pem -> закрытый ключ

yourdomain.crt -> открытый ключ

Gd_bundle.crt -> цепочка сертификатов

и ты хорош идти :)

38
C Jones

Мы нашли альтернативное решение этой проблемы. У нас были те же симптомы с той же ошибкой. 

Затем мы попытались повторно ввести pem-коды еще раз, но на этот раз мы удостоверились, что нажмем ввод, и убедитесь, что курсор находится на пустой строке в конце каждого окна. Тогда мы сохранили это . Это работало.

Это решило нашу проблему, так что это может решить ее для других.

7
PlateSpinner

Одна маленькая ошибка Я использую коробку Windows (Win 7 Pro), и когда я использовал порт Windows OpenSSL, выходные файлы имели символы конца строки в стиле Unix (LF). 

Мне пришлось преобразовать файл в стиль Windows (CRLF) для загрузки закрытого ключа.

1
Christopher Stevenson

Я могу предложить вам альтернативное решение и информацию для вас .. Как правило, все сертификаты имеют формат файла PEM. Вы можете просто открыть блокнот или любой текстовый редактор и перетащить файлы, которые вы получили в формате .crt. Который обычно называется файлом .PEM. Если сертификат загружен в ваш keytool, вы можете экспортировать сертификат как файл pfx из keytool. Затем вы можете отделить файл pfx от закрытого ключа от файла pfx. Поскольку файл pfx представляет собой комбинацию вашего сертификата и закрытого ключа. Таким образом, вы можете отдельно получить файл закрытого ключа и использовать его на своем Amazon AWS. 

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

0
Rajan