Рейтинг:3

Установите ssl-сертификат godaddy на nginx, pem, bundle, crt

флаг cn

Из имеющихся инструкций и сообщений на форуме немного неясно, как обращаться с тремя файлами, которые вы получите от Godaddy при покупке у них SSL-сертификата. Годэдди не очень откровенно объясняет это. Оглядываясь назад, теперь, зная, как это сделать, можно подумать, что было бы неразумно с их стороны не подробно описать это в инструкции, прилагаемой к покупке; так как это не тривиально, чтобы заставить его работать.

При покупке стандартного SSL-сертификата (Starfield SHA-2) или (Godaddy SHA-2) в GoDaddy. Вы указываете, какой тип сервера у вас есть, и загружаете zip-пакет. в процессе вы также скачиваете два текстовых файла.

Для Nginx вы указываете тип сервера «другой», и ваш zip-файл содержит 3 файла (1-3). В процессе также создаются еще два файла (4-5), сохраняемые отдельно:

  1. 3423l4kj23l4j.crt
  2. 3423l4kj23l4j.pem
  3. sf_bundle-g2-g1.crt
  4. сгенерированный закрытый ключ.txt
  5. сгенерированный-csr.txt

при открытии в блокноте 1 и 2 выше идентичны

'-----НАЧАТЬ СЕРТИФИКАТ-----
ММ123XXXXXX
XXXXXXXO8км
-----КОНЕЦ СЕРТИФИКАТА-----'

sf_bundle-g2-g1.crt выше не содержит 1 или 2, а вместо этого три отдельные записи

'-----НАЧАТЬ СЕРТИФИКАТ-----
ХХХХ1
ХХХХ2
-----КОНЕЦ СЕРТИФИКАТА-----
-----НАЧАТЬ СЕРТИФИКАТ-----
ХХХХ3
ХХХХ4
-----КОНЕЦ СЕРТИФИКАТА-----
-----НАЧАТЬ СЕРТИФИКАТ-----
ХХХХ5
ХХХХ6
-----КОНЕЦ СЕРТИФИКАТА-----'

сгенерированный закрытый ключ.txt уникален

'-----НАЧАТЬ ЗАКРЫТЫЙ КЛЮЧ-----
ХХХХ7
ХХХХ8
-----КОНЕЦ ЗАКРЫТОГО КЛЮЧА-----'

и наконец, сгенерированный-csr.txt, тоже уникальна

'-----НАЧАТЬ ЗАПРОС СЕРТИФИКАТА-----
ХХХХ9
ХХХХ0
-----КОНЕЦ ЗАПРОСА СЕРТИФИКАТА-----'

В Нгинксе:

  1. Я создал папку, /etc/nginx/ssl
  2. я редактирую /etc/nginx/sites-enabled/default.conf как показано ниже

;

сервер {
        слушать 80 default_server ;
        слушать [::]:80 default_server ;

Я изменил это на:

сервер {
        слушать 443 ssl ;
        слушать [::]:443 ssl ;
        имя_сервера пример.com;

        ssl_certificate /etc/nginx/ssl/ ?????????.crt;
        ssl_certificate_key /etc/nginx/ssl/ ???????.key;

Так как мне немного непонятно, что к чему, и что такое pem и бандл, хотелось бы спросить, какой из разархивированных файлов куда идет?:

  • ssl_certificate = crt, pem, bundle, gen_crt?
  • ssl_certificate_key = pem или закрытый ключ?

ОБНОВИТЬ Я сделал, как предложил @nikita-kipriyanov, это сработало.

  • объединены/объединены: 3423l4kj23l4j.pem sf_bundle-g2-g1.crt > fullchain.pem Это станет ssl_certificate файл
  • переименовал сгенерированный закрытый ключ.txt в privkey.pem файл, затем измените его кодировку файла: sudo iconv -c -f UTF8 -t ASCII privkey.pem >> privkey.pem Это станет ssl_certificate_key файл
Nikita Kipriyanov avatar
флаг za
Все ваши файлы в формате PEM. Кажется *вам нужно* объединить свой сертификат и пакет в соответствии с ответом ниже и использовать его для `ssl_certificate`. Используйте сгенерированный файл закрытого ключа для `ssl_certificate_key`. Я думаю, что это было довольно ясно из ответа, но ваше редактирование делает это более явным.
dave_thompson_085 avatar
флаг jp
Вы уверены, что это `sf_bundle-g1-g1`? Не имеет смысла связывать корень сам с собой, и [репозиторий GoDaddy] (https://certs.godaddy.com/repository) имеет `sf_bundle-g2-g1` и `sf_bundle-g2`, но не `sf_bundle- g1-g1`.
Jaco avatar
флаг cn
хорошее место @dave_thompson_085, это была опечатка, исправил
Рейтинг:3
флаг za

Это зависит от того, что внутри пачки. Я уверен, что он содержит путь сертификации до доверенного ЦС, вопрос в том, включает ли он также сертификат конечного сервера (это «полная цепочка» с точки зрения Let's Encrypt) или нет («цепочка»)? Кроме того, какой файл содержит закрытый ключ?

Вы можете проверить это вручную, просто просмотрев текстовый просмотрщик (блокнот и т. д.) и сравнив содержимое, потому что пакет в формате PEM — это не что иное, как все сертификаты в форме Base64, связанные, начиная с сервера, затем его CA-эмитента, и так далее.

Вы также можете вырезать любой сертификат, начинающийся с -----НАЧАТЬ СЕРТИФИКАТ----- вплоть до -----КОНЕЦ СЕРТИФИКАТА-----, в том числе обе эти специальные строки в специальный файл и декодируйте его с помощью openssl x509 -в файле.pem -noout -текст. Таким образом, вы будете точно знать, какие сертификаты находятся в комплекте.

Если файл в формате PEM содержит что-то вроде -----НАЧАТЬ ЗАКРЫТЫЙ КЛЮЧ----, никому не рассказывай, держи в секрете!

Все файлы, содержащие только сертификаты, имеют только -----НАЧАТЬ СЕРТИФИКАТ----- в них являются общедоступными. Вы можете смело показывать их кому угодно (и вы, на самом деле, будете, потому что сервер отправляет эти сертификаты клиенту на этапе инициации сеанса SSL).


Если ваш бандл уже содержит полную цепочку (т.е. начинается с сертификата конечного сервера), то вся работа была сделана за вас и пропустите следующий шаг.

Однако, если он не содержит полной цепочки, вы должны соединить ее самостоятельно (похоже, это ваш случай):

cat server.crt bundle.pem > fullchain.pem

Теперь просто передайте его в Nginx:

ssl_certificate fullchain.pem;
ssl_certificate_key privkey.pem;

Видеть Руководство по Nginx для деталей.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.