В openssl.cnf default_md (использовать открытый ключ по умолчанию MD) установлен на дефолт. Как я могу узнать значение по умолчанию без создания сертификата? Есть ли файл, в котором я могу проверить, где указаны значения по умолчанию?
md
означает message digest
а из openssl версии 1.1 дайджест по умолчанию sha256
.
-md alg
дайджест сообщения для использования. Можно использовать любой дайджест, поддерживаемый командой OpenSSL dgst. Этот параметр также применяется к спискам отзыва сертификатов.
https://www.openssl.org/docs/manmaster/man1/ca.html
Дайджест по умолчанию был изменен с MD5 на SHA256 в Openssl 1.1.
Начиная с 1.0.0 (в 2010 году), хеш по умолчанию, используемый req
и ca
- или, точнее, значение по умолчанию, используемое внутренними функциями, которые вызывают эти команды, X509_sign X509_REQ_sign X509_CRL_sign
- определяется в ASN1_item_sign
позвонив EVP_PKEY_get_default_digest_nid
который использует pkey->ameth->pkey_ctrl(pkey,ASN1_PKEY_CTRL_DEFAULT_MD_NID,...)
. Таким образом, в принципе выбор хэша может зависеть от типа ключа или даже от фактического ключа, но для трех поддерживаемых в настоящее время типов подписи с открытым ключом (RSA, DSA, ECDSA) он фактически жестко закодирован: в 1.0.0 и 1.0. 1 это SHA1, а в 1.0.2 1.1.0 и 1.1.1 это SHA256.
До этого в 0.9.8 по умолчанию для req
был жестко запрограммирован как SHA1, но для ca
по умолчанию не было: если вы не указали хэш в командной строке, и у вас не было default_md
установлен на действительный хэш, это не удалось. Конфигурация восходящего потока, которая может использоваться или не использоваться в любом конкретном случае, имеет значение sha1.