Как создать запрос сертификата TLS SHA256

10

Один из наших деловых партнеров просит нас использовать сертификат TLS SHA256 для подключения к их API. Я не уверен, как генерировать эти запросы. В прошлом я использовал openssl для создания этих запросов, но он генерировал SSL-сертификат, используя SHa1. Могу ли я использовать openssl для генерации этого запроса? Если нет, то как мне создать то, что они просят?

Я не эксперт в этой области, поэтому я даже не знаю, имеет ли смысл то, что я спрашиваю.


источник
Мне было бы забавно, если бы вы были одним из 12 человек, которых я должен был сказать сегодня, чтобы вернуться с КСО SHA256 вместо SHA1.
Hyppy
@Хиппи, надеюсь, ты все еще находишь это забавным в конце года :)
Maarten Bodewes

Ответы:

12

CSR хэш и хэш сертификата не связан

Тип хеша по запросу и по фактическому сертификату не связаны друг с другом.

CA проверяет подпись на CSR. Таким образом, CA может проверить, что CSR не был изменен при передаче. Это все, что делает подпись на CSR.

Не существует официального (или даже полуофициального) внутриполосного способа сообщить CA, какой хеш вы хотите. Вместо этого компания CA может запустить несколько CA, один из которых использует исключительно SHA256. И если вы хотите SHA256, то вы отправляете свой CSR на веб-сайте этого конкретного SHA256-only-CA. (И не на их веб-сайте SHA1-CA.)

Часто теоретизируют что-то вроде этого: «Если я отправлю CSR, подписанный с SHA1, то мой сертификат будет подписан с SHA1». Обычно это не делается. ( Единственный известный мне CA, который раньше делал это, был Gandi.net .)

Как подписать CSR с SHA256
При этом используйте -sha256параметр, чтобы подписать CSR с SHA256 следующим образом:

openssl req -new -newkey rsa: 2048 -nodes -sha256 -out www.example.com.sha256.csr -keyout www.example.com.key -subj "/ C = US / ST = ExampleState / L = ExampleLocation / O = ExampleOrganisation / CN = www.example.com»

Как проверить тип хэша CSR
И вот как вы узнаете тип хэша вашего CSR:

$ openssl req -in www.example.com.sha256.csr -noout -text | grep Signature  
    Signature Algorithm: sha256WithRSAEncryption

Хороший. Он использует SHA256, как мы и хотели.

StackzOfZtuff
источник
5

Если вы используете OpenSSL, вы можете просто добавить параметр -sha256командной строки, который будет генерировать CSR с алгоритмом подписи SHA-256.

Hyppy
источник