Как сделать новый SSL сертификат со старым SSL ключом

Как сделать новый SSL сертификат со старым SSL ключом

От автора: было очень непонятно, как работает закрепление публичных HTTP ключей. Это последнее, с чем хочется иметь дело в разгар крупной конференции. В сегодняшней статье я объясню вам, как сделать новый сертификат, который будет использовать ключ устаревшего SSL сертификата.

Возвращаемся к нормальной работе

Правда заключается в том, что не было безошибочного выхода из этой ситуации так, чтобы у всех пользователей все заработало. Однако ниже я расскажу вам про те шаги, которые помогли вернуть Smashing Magazine к нормальной работе.

1. Найдите оригинальный секретный ключ от устаревшего сертификата

Во-первых, их хостинг утверждал, что для копии, которая у них была, требуется пароль, о котором они и не знали. К счастью, ключ используется не просто для создания сертификата. Во время терминации TLS сервер запрашивает копию секретного ключа, а сам ключ на сервере очень редко запаролен, так как это требует постоянного ручного ввода пароля при любой перезагрузке сервера. Мы зашли на хостинг и нашли на сервере старый ключ. И теперь с ключом мы можем переходить к следующему шагу.

2. Добавьте старый ключ в новые заголовки закрепления публичных ключей

После запуска OpenSSL команды генерируется набор ключей, закодированных в Base64, после чего они закрепляются:

openssl rsa -in my-key-file.key -outform der -pubout | openssl dgst -sha256 -binary | openssl enc -base64

Далее я сказал администраторам Smashing Magazine обновить их заголовки:

Public-Key-Pins: 
pin-sha256="35L+K6PY5ynTu15SYPrT8KXp5TRH8kzP46mYLpv9k30="; 
pin-sha256="8RoC2kEF47SCVwX8Er+UBJ44pDfDZY6Ku5mm9bSXT3o="; 
pin-sha256="78j8kS82YGC1jbX4Qeavl9ps+ZCzb132wCvAY7AxTMw="; 
pin-sha256="GQGOWh/khWzFKzDO9wUVtRkHO7BJjPfzd0UVDhF+LxM="; 
max-age=86400; includeSubDomains

Тут я внес две правки. Я изменил max-age с одного года на один день. Если max-age будет равняться одному году, то утеря секретных ключей, используемых для генерации сертификатов, моментально выведет ваш сайт из работы ровно на год. Плохая идея!

Второе изменение – включение набора ключей в старый сертификат. Нам пришлось это сделать, так как группа пользователей, заходившие на сайт после выхода новых сертификатов, но без закрепленных старых сертификатов получала бы одну и ту же SSL ошибку в случае, если Smashing Magazine захотели бы опять поменять сертификаты. Мы сделали это и дали пользователям пару часов, чтобы когда они снова зашли, им подтянулись старые наборы ключей.

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

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

openssl req -new -sha256 -key my-key-file.key -out my-certificate-request.csr

Во время генерации запроса на сертификат вам будут задавать различные вопросы. Самый главный – «Common Name» или имя сертификата, которое будет определять, для какого домена сертификат будет валидным. После получения CSR вы можете заказать сертификат у любого провайдера.

4.Измените сертификат

Имея новый сертификат, подписанный старым ключом, мы, наконец, смогли оживить его и заставить сайт работать для большинства пользователей. Тем, кому не повезло, могли зайти на сайт, когда на нем еще были закреплены новый сертификат и новый ключ. У людей просто не было доступа к Smashing Magazine, пока они не почистили кэш закрепленных ключей или не зашли через другой браузер.

Smashing Magazine потерял тысячи посетителей, и как только сайт поднялся, люди, стоявшие за этим, смогли вернуться на фантастическую конференцию в Барселоне.

Автор: Mathias Biilmann Christensen

Источник: https://www.smashingmagazine.com/

Редакция: Команда webformyself.

Практика HTML5 и CSS3 с нуля до результата!

Получите бесплатный пошаговый видеокурс по основам адаптивной верстки с полного нуля на HTML5 и CSS3

Получить

Метки:

Комментарии Вконтакте:

Комментарии Facebook:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Я не робот.

Spam Protection by WP-SpamFree