«Сертифікат відкритого ключа та приватний ключ не збігаються» при використанні сертифіката, виданого Godaddy [закрито]


86

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

Ось як я створюю ключі:

$ 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) як тип сервера (я також пробував "інші" та "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, але я не впевнений, як це перевірити.

Будь-які ідеї?


1
Stack Overflow - це сайт для питань програмування та розробки. Здається, це питання не є темою, оскільки мова не йде про програмування чи розробку. Подивіться, які теми я можу запитати тут, у довідковому центрі. Можливо, краще користувач міг би запитати. Також див. Де можна розмістити запитання про Dev Ops? .
jww

Цій публікації більше 3-х років, навіщо турбуватися про її переміщення зараз?
Фелбі

1
Фелбі - люди часто кажуть: "... але подивіться цей пост і той пост". Отже, цього недостатньо, щоб нові публікації були охайними - ми повинні принаймні отримувати повідомлення і про старі повідомлення. І чого він вартий, я не думаю, що це погане питання. Це просто трохи не по темі для переповнення стека.
jww

@Felby, ви повинні розглянути цю відповідь для прийняття. Це те, що шукає більшість розробників, коли ця проблема виникає із AWS.
Ноель Барон

Відповіді:


61

Для мене це був простий двоетапний крок:

  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


1
Ця конкретна відповідь мені справді допомогла. Дякую Джонатану. Для запису, yourdomain.crt - це відкритий ключ, сертифікат, який ви отримали від свого постачальника (може бути і .cer)
user_v

я постійно отримую повідомлення про помилкуWARNING: can't open config file: /etc/pki/tls/openssl.cnf
tq

2
@tq - деякі команди OpenSSL також приймають -configможливість. Використовуйте його, щоб вказати шлях до використовуваного вами конфігураційного файлу.
jww

@felby Має позначити це як прийняту відповідь. Це єдина відповідь, яка не створює проблеми довіри до SSL з пристроями iOS.
Ноель Барон

Ця відповідь дійсно корисна для підстановочного SSL. Вам потрібно перетворити як файл domain.crt, так і gd_bundle.crt.
Дукле

40

Тільки для протоколу та всіх, хто намагається це зрозуміти:

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

yourdomain.crt -> відкритий ключ

gd_bundle.crt -> ланцюжок сертифікатів

і тобі добре йти :)


2
OMG, я втратив стільки годин із проблемою, ти щойно врятував мене! Я придбав сертифікат RapidSSL: фокус полягав у тому, щоб 1) перетворити приватний ключ, як ви пропонуєте тут, і 2) змінити порядок сертифікатів у ланцюжку сертифікатів, наданому RapidSSL. Дякую!
MiniQuark

постійно запитує у мене пароль, але мій сертифікат rapidssl був зроблений без нього
tq

Команда sudo запитає пароль адміністратора, якщо ваш обліковий запис не налаштовано на необхідність введення пароля кількома різними методами. Це пароль, на який ви теж посилаєтесь?
Chris J

Щоб додати щось там, де його може знайти хтось, хто цього потребує, ми отримали сертифікат Host Gator від клієнта, і це, здавалося, було досить гарно налаштовано - ніяких перетворень pem, а пакет CA вже був об’єднаний разом. Однак не піде в Amazon. Те саме було з порядком сертифікатів у пачці. Змінивши порядок, він увійшов і запрацював.
CargoMeister

23

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


Чи можете ви прийняти свою відповідь, щоб люди знали, що це вирішено?
Phil Sturgeon

2
Дивно, я думав, що вже давно прийняв це ...
Фелбі,

7

Ми знайшли альтернативне рішення цієї проблеми. У нас були однакові симптоми з тією ж помилкою.

Потім ми спробували ще раз ввести пем-коди, але цього разу ми обов’язково натиснули клавішу Enter один раз і переконались, що курсор знаходиться на порожньому рядку в кінці кожного вікна. Тоді ми його зберегли. ЦЕ СПРАЦЮВАЛО.

Це вирішило нашу проблему, тому може вирішити її для інших.


1

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

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


0

Я можу запропонувати вам альтернативне рішення та інформацію для вас, люди. Як правило, усі сертифікати мають формат файлу PEM. Ви можете просто відкрити блокнот або будь-який текстовий редактор і перетягнути отримані файли у форматі .crt. Що зазвичай називається файлом .PEM. Якщо сертифікат, завантажений у ваш інструмент ключів, ви можете експортувати сертифікат як файл pfx із інструменту ключів. Тоді ви можете відокремити файл pfx від приватного ключа від файлу pfx. Оскільки файл pfx є комбінацією вашого сертифіката та приватного ключа, тому ви можете отримати файл приватного ключа окремо та використовувати його на своєму Amazon Aws.

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.