ssl - 是否使用 rsa :2048 use an SHA-2 cryptographic hash algorithm? 创建的 SSL 证书

标签 ssl encryption https openssl rsa

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 报告如下:

Chrome browser report

最佳答案

证书颁发者用于签署证书请求的哈希算法与证书请求本身无关。这意味着 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/

相关文章:

ssl - 将 SSL 证书添加到网站,一切运行正常,除非有人输入 https ://example. com

wcf - 强制 WCF 使用 HTTPS

ssl - 由于未正确使用 ssl 证书,REST 请求未在 newman 中执行

android - 拖放应用程序构建器许可。如何确保源代码不会被反编译和重复使用?

asp.net-core - MailKit.Security.SslHandshakeException : The host name did not match the name given in the server's SSL certificate. asp.net 核心 5,nginx

java - 存储 AES key

c++ - 需要帮助来理解轮类计算并减少我的代码中的一些脂肪

ruby-on-rails - 工头、Rails、Puma SSL/HTTPS

java - 用于 keystore 和信任库优势的相同 JKS 文件

Azure 应用程序网关 - 多个 SSL 证书?