【问题标题】:Generate self-signed certificate with specific cipher suites using OpenSSL?使用 OpenSSL 生成具有特定密码套件的自签名证书?
【发布时间】:2020-02-01 11:22:45
【问题描述】:

我正在尝试生成支持特定密码套件的自签名服务器证书:

  • TLS_RSA_WITH_RC4_128_SHA
  • TLS_RSA_WITH_AES_256_CBC_SHA

我应该如何继续生成特定的证书?我看到大多数指南都遵循这个命令:

openssl req -new -newkey rsa:4096 -x509 -sha256 -days 365 -nodes -out MyCertificate.crt -keyout MyKey.key

我应该更改 -sha256 参数吗?

【问题讨论】:

  • X.509 证书目前不包括密码套件。他们可能有一天,但不是今天。相比之下,我相信 OpenSSH 证书确实允许人们断言密码。密码套件在客户端和服务器上配置,并在 SSL/TLS 握手期间协商。

标签: ssl encryption openssl x509


【解决方案1】:

假设您正在谈论服务器证书,那么为了支持这两个密码套件,您的服务器将需要一个 RSA 证书。您列出的命令将执行此操作并为您提供所需的内容。

我应该更改 -sha256 参数吗?

不,没有必要这样做。这指定了签署证书时要使用的摘要。这与密码套件 (SHA1) 中指定的摘要无关。

【讨论】:

    【解决方案2】:

    X.509 证书与密码套件支持无关。他们之间没有任何关系。证书用于对实体(客户端和服务器)进行身份验证。对称算法选择是与证书无关的过程,由 TLS 服务器/客户端库分别处理。

    【讨论】:

    • 谢谢,有没有一个链接可以很好地阅读这个证书,密码套件的东西?那么证书是用来认证的,而密码是用来加密传输的?
    • So the certificate is used to authenticate while the cipher is used to encrypt the transmission? 完全正确。这是一些阅读:security.stackexchange.com/a/90428/117761(尤其是最后一段)
    • 这是不正确的。链接页面的最后一段特别提到了没有指向密码套件的链接的 client 证书。然而,服务器证书不是的情况。 @user990639 没有指定是否需要客户端或服务器证书 - 但客户端证书比服务器证书少得多,所以我假设后者。在这种情况下,服务器证书中的密钥类型必须与密码套件中的身份验证算法相匹配。问题中的两个密码套件都使用 RSA,因此需要 RSA 服务器证书。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-04
    相关资源
    最近更新 更多