Я прочел:
По умолчанию криптографические инструменты OpenSSL настроены на создание подписей SHA1. например, если вы хотите сгенерировать запрос сертификата, подписанного SHA256 (CSR), добавьте в командную строку: -sha256
Мне потребовалось обновить существующий сертификат SHA1 до SHA256. Я создал новый CSR и отправил его в RapidSSL, прежде чем понял, что не указал -sha256
в КСО.
Я связался с ними, и они говорят «Произведена замена сертификата Sha2, и текущее состояние заказа ожидает утверждения. После утверждения заказа будет выдан новый сертификат с использованием алгоритма SHA2».
У меня вопрос, могут ли они получить мой SHA1 CSR и сказать: «Хорошо, мы все равно возвращаем вам сертификат SHA256, потому что это все, что мы сейчас делаем»? И будет ли этот сертификат работать с сгенерированным мной закрытым ключом, соответствующим этому CSR SHA1?
Как это работает? Когда я прохожу -sha256
(или когда я этого не сделаю) во время генерации CSR, что это влияет, кроме как просто сделать пометку в CSR, говорящую «эй, этот человек хочет шифрование SHA256 в своем сертификате»? Влияет ли это каким-либо образом на сгенерированный закрытый ключ?
Это возможно, потому что подпись CSR используется только для доказательства того, что вы действительно являетесь владельцем закрытого ключа, который совпадает с открытым ключом, встроенным в CSR. Как только CA (RapidSSL в вашем случае) решает, что CSR действителен, его подпись становится бессмысленной для дальнейшего процесса создания сертификата и фактически отбрасывается.
Полную информацию о том, что в сертификате, см. rfc5280-4.1.2