Статьи

Добавление (подписанного SHA256) SSL-сертификата

За последние 6 месяцев мне приходилось обновлять SSL-сертификат несколько раз на jsbin.com , и я держу на своем компьютере список шагов SSL. Так что пришло время опубликовать это где-нибудь, что я тоже могу гуглить !

В этом пошаговом руководстве объясняется, как добавить SSL-сертификат на ваш сервер. Это основано на использовании машины на основе Linux (в моем случае Ubuntu) и nginx в качестве сервера.

Я зарегистрировал свой SSL-сертификат через namecheap от RapidSSL, который на самом деле является оболочкой для GeoTrust.

Если вы перевыпускаете сертификат для обновления до SHA256 (с SHA-1) (потому что SHA-1 отбрасывается ) от RapidSSL, вы должны переиздать его напрямую. Смотрите этот комментарий для более подробной информации.

Предполагая, что мой сайт — example.com, я использую exampleв качестве основного имени файла.

openssl genrsa -aes256 -out example-encrypted.key 2048
openssl rsa -in example-encrypted.key -out example-decrypted.key
openssl req -new -sha256 -key example-decrypted.key -out example.csr

Последняя команда сгенерирует CSR, который отправится вашему эмитенту SSL. У меня есть этот шпаргалка для подсказок (если вы находитесь в Великобритании, так как Localityможет не так много значить):

  • Название страны:, GBкод страны, а не название
  • Штат:, East Sussexокруг, если вы находитесь в Великобритании
  • Местонахождение:, Brightonваш город
  • Организация: My Company Ltd
  • Подразделение организации: оставьте пустым
  • Общее имя:, www.example.comполный домен для сертификата
  • Оставьте поле пустым (адрес электронной почты, пароль и название компании)

Примечание: если у вас есть подстановочный сертификат, то общее название *.example.com.

Отправьте example.csrсодержимое на переизданный сертификат SSL и согласитесь на все электронные письма.

Вы должны получить электронное письмо от проблемы SSL с сертификатом. Сохраните содержимое «сертификата» в example.crt.

Теперь получите промежуточный сертификат (я использую сертификат RapidSSL SHA256 ) и объедините его в один связанный файл — обратите внимание, что порядок важен:

cat example.crt intermediate.crt > bundle.crt

Особое примечание к RapidSSL : я обнаружил, что сертификат GeoTrust (часть промежуточного сертификата, который я скачал выше) все еще был подписан SHA-1. Поэтому я отбросил его, только связывая свой собственный сертификат и сертификат rapidSSL (а значит, меньше сертификатов), и теперь я получаю зеленую блокировку от Chrome Canary. Примечание: я не на 100%, если все в порядке, но это действительно так.


Наконец, убедитесь, что nginx (в моем случае) использует пакет и ключ, используемый для генерации csr:

ssl                  on;
ssl_certificate      /WWW/example.com/certs/bundle.crt;
ssl_certificate_key  /WWW/example.com/certs/example-decrypted.key;

Затем перезапустите nginx:

nginx -s reload

Рекомендации и инструменты: