Назад | Перейти на главную страницу

openssl - какой MD по умолчанию для открытого ключа

В 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.

https://www.openssl.org/docs/manmaster/man1/dgst.html

Начиная с 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.