openssl - 公钥默认 MD 是什么

openssl - 公钥默认 MD 是什么

在 openssl.cnf 中默认_md(使用公钥默认 MD)设置为默认。如何在不生成证书的情况下找出默认值?是否有可以检查列出默认值的文件?

答案1

md代表message digest,从 openssl 1.1 版开始,默认摘要为sha256

-md 算法

要使用的消息摘要。可以使用 OpenSSL dgst 命令支持的任何摘要。此选项也适用于 CRL。

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

在 Openssl 1.1 中,默认摘要从 MD5 更改为 SHA256。

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

答案2

req自 1.0.0(2010 年)以来,和使用的默认哈希值ca(或更确切地说,这些命令调用的内部函数使用的默认哈希值)由调用使用X509_sign X509_REQ_sign X509_CRL_sign来确定。因此,原则上哈希值的选择可能取决于密钥类型甚至实际密钥,但对于当前支持的三种公钥签名类型(RSA、DSA、ECDSA),它实际上是硬编码的:在 1.0.0 和 1.0.1 中是 SHA1,在 1.0.2 1.1.0 和 1.1.1 中是 SHA256。ASN1_item_signEVP_PKEY_get_default_digest_nidpkey->ameth->pkey_ctrl(pkey,ASN1_PKEY_CTRL_DEFAULT_MD_NID,...)

在此之前,在 0.9.8 中,默认值req被硬编码为 SHA1,但ca不存在默认值:如果您未在命令行上指定哈希值,并且未设置default_md为有效哈希值,则失败。上游配置(在任何特定情况下可能会使用也可能不会使用)已将其设置为 sha1。

相关内容