谷歌正试图使用SHA1散列算法逐步淘汰SSL证书的使用。因此,我希望创建一个符合SHA2的自签名证书。我知道SHA是一种散列算法,而RSA是一种加密算法。我找到了以下生成密钥和证书对的命令:
openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout key.pem -out cert.pem这会使用SHA-2散列算法生成证书吗?
部署证书后,Chrome报告如下:

发布于 2015-08-28 06:22:17
我相信我已经解决了这个问题。我使用的命令使用了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发布于 2015-08-28 05:01:19
证书颁发者用于签署证书请求的哈希算法与证书请求本身无关。这意味着CA可能对2048位键使用SHA-2,但也可能使用SHA-1。它甚至可能重新签署同一证书,该证书曾经与SHA-1签署,现在与SHA-2签署。目前大多数(全部?)公共CA使用SHA-2,因为SHA-1由于安全原因被逐步淘汰。
在您的示例中,您使用openssl req命令不仅创建证书请求,而且对其进行签名,即创建一个自签名证书。现代版本的openssl将使用SHA-2签署这个新的证书,在默认情况下,旧版本SHA-1。要强制执行SHA-2作为签名算法,请使用-sha256参数。
https://stackoverflow.com/questions/32263453
复制相似问题