我在玩一些签名算法,试图确定我使用的那些 CA 目前正在颁发 SHA2 证书。
gnutls-certtool
我生成了一个指定 SHA256 哈希的CSR(使用hash
参数和openssl req
参数-sha256
),并且 CSR 清楚地显示sha256WithRSAEncryption
为签名算法。
$ openssl req -noout -text -in test.csr
Certificate Request:
...
Signature Algorithm: sha256WithRSAEncryption
...
但是,来自 CA 的结果证书使用sha1WithRSAEncryption
.
$ openssl x509 -noout -text -in test.crt
Certificate:
Data:
Version: 3 (0x2)
Serial Number: ... (...)
Signature Algorithm: sha1WithRSAEncryption
当然,使用--hash SHA1
( sha1WithRSAEncryption
hash) 生成 CSR 将导致使用生成的证书sha1WithRSAEncryption
(如预期的那样)。
CA 声明哈希应该被指定为订单的一部分,而不是 CSR(这是我在任何情况下都不能做的事情,因为我是通过第三方服务提交订单的)。
因此问题。CA 是否应该遵守 CSR 中指定的哈希算法?