使用 rsa:2048 创建的 SSL 证书是否使用 SHA-2 加密哈希算法?

Does a SSL certificate created using rsa:2048 use an SHA-2 cryptographic hash algorithm?

Google 正在尝试逐步停止使用使用 SHA1 散列算法的 SSL 证书。因此,我想创建一个符合 SHA2 的自签名证书。我知道 SHA 是一种哈希算法,而 RSA 是一种加密算法。我找到了以下用于生成密钥和证书对的命令:

openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout key.pem -out cert.pem

这会使用 SHA-2 哈希算法生成证书吗?

部署证书后,Chrome 报告如下:

证书颁发者用于签署证书请求的哈希算法与证书请求本身无关。这意味着 CA 可能使用 SHA-2 作为 2048 位密钥,但它也可能使用 SHA-1。它甚至可能重新签署曾经使用 SHA-1 现在使用 SHA-2 签署的相同证书。 目前大多数(全部?)public CA 使用 SHA-2,因为出于安全原因,SHA-1 已被淘汰。

在您的情况下,您使用 openssl req 命令不仅可以创建证书请求,还可以对其进行签名,即创建自签名证书。 openssl 的现代版本默认使用 SHA-2 来签署这个新证书,旧版本使用 SHA-1。要强制使用 SHA-2 作为签名算法,请使用 -sha256 参数。

我相信我已经解决了这个问题。我一直在使用的命令使用 openssl 的默认哈希算法,即 SHA-1。要创建 SHA-2 散列证书,必须指定 SHA-2 选项。在这种情况下,我选择使用 SHA-256。以下是更新后的命令:

openssl req -newkey rsa:2048 -sha256 -new -nodes -x509 -days 3650 -keyout key.pem -out cert.pem