OpenSSL генерация CSR запроса с SHA256
Алгоритм SHA1 был разработан в далеком 1995 году, первые слабые стороны обнаружились в 2005-м — почти 12 лет назад. Проведенные расчеты показали, что возможность взлома SHA1 значительно возросла. В Microsoft заявил, что начиная с 2016 года полностью откажутся от поддержки сертификатов, сгенерированых с алгоритмом хеширования SHA1.
Но больше паники вызвало заявление Google о том, что компания будет постепенно отказываться от поддержки SHA1 в новых версиях наиболее популярного браузера Google Chrome. Это отразится на том, что сайты, использующие SSL сертификаты с алгоритмом хеширования SHA1 и сроком действия, заканчивающемся в 2016 году и позже, будут отмечены в браузере как ненадежные.
Это изменение требует незамедлительных действия со стороны веб-администраторов, так как на сентябрь 2014 более 85% всех защищенных веб-сайтов использовали SSL сертификаты, основанные на алгоритме SHA1.
Создание ключа
Для начала нужно создать ключ с помощью openssl
openssl genrsa -out key_name.key 2048
Если вы хотите дополнительную безопасность можно увеличить длину в битах.
openssl genrsa -out key_name.key 4096
**Оба примера создают ключ БЕЗ пароля, для создания ключа с паролем нужно добавить опцию «-des3«
Создание файла запроса на подпись сертификата (CSR)
На основе сгенерированного ранее ключа создаем запрос на подпись сертификата с применением алгоритма sha256
openssl req -out CSR.csr -key key_name.key -new -sha256
Вы можете проверить, что ваш запрос о подписании сертификата (CSR), имеет правильную подпись, выполнив следующие действия.
openssl req -in CSR.csr -noout -text
Ответ должен показывать следующее, если подпись верна.
Signature Algorithm: sha256WithRSAEncryption
Для выполнения всех действий по генерации ключа и запроса одной командой:
2048 bit:
openssl req -nodes -newkey rsa:2048 -sha256 -keyout test.key -out test.csr
4096 bit:
openssl req -nodes -newkey rsa:4096 -sha256 -keyout test.key -out test.csr
Установка сертификата (CRT)
Это зависит от используемого программного обеспечения, я расскажу об этом в отдельной заметке. Эти сертификаты поддерживаются огромным числом программного обеспечения, в том числе Apache2 и NGINX.
Тестирование установленного сертификата
Я приведу несколько сервисов которыми пользуюсь, для тестирования сертификатов на предмет правильной установки, срока валидности и т.д.
Успехов.