CSH хеш і cert хеш не пов'язані
Тип хешу у запиті та фактичному сертифікаті не пов'язані один з одним.
КС перевіряє підпис на КСВ. Таким чином, CA може перевірити, що КСВ не було змінено під час транзиту. Ось і весь підпис на КСВ.
Не існує офіційного (або навіть напівофіційного) загальнодоступного способу сказати КА, який хеш ви хочете. Натомість компанія CA може управляти кількома ЦА, в одному з яких використовується виключно SHA256. І якщо ви хочете SHA256, ви надсилаєте свою КСВ на веб-сайті одного конкретного SHA256-CA-CA. (А не на веб-сайті SHA1-CA.)
Те, що часто теоретизується, є приблизно так: "Якщо я надішлю КСВ, підписаний із SHA1, то мій сертифікат буде підписаний із SHA1." Зазвичай це не робиться. ( Єдиний КА, який я знав про це, який раніше робив це, був Gandi.net .)
Як підписати КСВ з SHA256 Враховуючи
це, використовуйте -sha256
параметр, щоб підписати КСВ з 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 так, як ми хотіли.