【问题标题】:Does a SSL certificate created using rsa:2048 use an SHA-2 cryptographic hash algorithm?使用 rsa:2048 创建的 SSL 证书是否使用 SHA-2 加密哈希算法?
【发布时间】:2015-11-22 16:00:18
【问题描述】:

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 会报告以下内容:

【问题讨论】:

    标签: ssl encryption https openssl rsa


    【解决方案1】:

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

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

    【讨论】:

    • 在这种情况下,我正在创建自己的自签名证书。所以不涉及 CA。我希望能够创建自己的 SHA-2 签名证书。我不确定 OP 中提供的命令是否会这样做。
    • @Benjen:我没有看到您创建了自签名证书。有关详细信息,请参阅编辑后的帖子。
    【解决方案2】:

    我相信我已经解决了这个问题。我一直在使用的命令使用 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
    

    【讨论】:

    • 如果您添加选项-x509,您将立即获得自签名证书,而无需使用另一个 openssl 命令。
    猜你喜欢
    • 2017-09-14
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 2022-10-23
    • 2021-01-14
    • 2021-01-06
    • 1970-01-01
    相关资源
    最近更新 更多