OpenSSL генерация CSR запроса с SHA256

Автор: | 03.09.2015

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.

Тестирование установленного сертификата

Я приведу несколько сервисов которыми пользуюсь, для тестирования сертификатов на предмет правильной установки, срока валидности и т.д.

Успехов.