使用OpenSSL生成特定密码套件的自签名证书?

4

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

  • 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参数吗?


1
X.509证书目前不包括密码套件。它们可能有一天会包括,但今天不会。相比之下,我相信OpenSSH证书允许断言密码。密码套件在客户端和服务器上配置,并在SSL/TLS握手期间协商。 - jww
2个回答

1
假设您谈论的是服务器证书,那么为了支持这两个密码套件,您的服务器将需要一个RSA证书。您列出的命令将执行此操作并提供您所需的内容。
“我应该更改-sha256参数吗?”
不,没有必要这样做。这指定在签署证书时要使用的摘要。这与在密码套件中指定的摘要(SHA1)无关。

-1

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


谢谢,有没有一个链接可以详细了解证书和密码套件的相关知识?所以证书用于身份验证,而密码用于加密传输? - Eugene
那么证书用于身份验证,而密码用于加密传输,是吗?没错。这里有一些阅读材料:https://security.stackexchange.com/a/90428/117761(特别是最后一段)。 - Crypt32
这不是正确的。链接页面中的最后一段专门提到了没有与密码套件相关联的客户端证书。但是对于服务器证书,情况并非如此。@user990639没有指定需要客户端证书还是服务器证书 - 但是客户端证书比服务器证书少得多,因此我假设是后者。在这种情况下,服务器证书中的密钥类型必须与密码套件中的身份验证算法匹配。问题中的两个密码套件都使用RSA,因此需要RSA服务器证书。 - Matt Caswell

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接