За последние 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
Рекомендации и инструменты:
- shaaaaaaaaaaaaa (для проверки SHA-1)
- Лаборатории SSL (для глубокого анализа SSL)
- общие команды openssl