Google 正试图逐步停止使用使用 SHA1 散列算法的 SSL 证书。因此,我想创建一个符合 SHA2 的自签名证书。我知道 SHA 是一种哈希算法,而 RSA 是一种加密算法。我找到了以下用于生成 key 和证书对的命令:
openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout key.pem -out cert.pem
这会使用 SHA-2 哈希算法生成证书吗?
部署证书后,Chrome 报告如下:
最佳答案
证书颁发者用于签署证书请求的哈希算法与证书请求本身无关。这意味着 CA 可能使用 SHA-2 作为 2048 位 key ,但它也可能使用 SHA-1。它甚至可能重新签署曾经使用 SHA-1 现在使用 SHA-2 签署的相同证书。 目前大多数(全部?)公共(public) CA 使用 SHA-2,因为出于安全原因,SHA-1 已被淘汰。
在您的情况下,您使用 openssl req
命令不仅可以创建证书请求,还可以对其进行签名,即创建自签名证书。 openssl
的现代版本默认使用 SHA-2 来签署这个新证书,旧版本使用 SHA-1。要强制使用 SHA-2 作为签名算法,请使用 -sha256
参数。
关于ssl - 是否使用 rsa :2048 use an SHA-2 cryptographic hash algorithm? 创建的 SSL 证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32263453/