如何使用OpenSSL创建256位自签名证书密钥?

12
请看PayPal(https://www.paypal.com/)的安全证书。 它说:连接已加密: 高级加密(TLS_RSA_WITH_AES_256_CBC_SHA, 256位密钥)

那么,我如何创建自签名证书以获得相同的AES256加密? 我在Openssl中尝试了以下代码:

openssl> req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes

但我最终得到的只是128位证书。然后我尝试了:

openssl> genrsa -aes256 -out key.key 4096
openssl> req -new -key key.key -out cert.csr
openssl> x509 -req -days 365 -in cert.csr -signkey key.key -out cert.crt
openssl> rsa -in key.key -out key.key

即使我指定了“-aes256”,我仍然只获得了一个128位证书:连接已加密: 高级加密(TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,128位密钥)

那么,我做错了什么?您能告诉我如何创建256位证书吗?感谢您的帮助!


6
你有一个4096位RSA密钥的证书,没有必要再提高密钥长度。SSL使用哪种对称加密方式取决于服务器/客户端支持的加密方式,而不与证书密钥长度有关。你需要调整服务器配置,而非证书。 - CodesInChaos
CodesInChaos 是对的。我应该编辑服务器的配置。<br> 我在 Apache 配置中添加了这行代码,它起作用了:<b>SSLCipherSuite AES256-SHA</b>。 - user3284653
2个回答

7

CodesInChaos 是正确的。我应该编辑服务器的配置。我在Apache配置中添加了SSLCipherSuite行,然后它就可以工作了。

SSLCipherSuite AES256-SHA

0
常见的误解是,SSL证书并不决定网站使用的密码强度,而是由Web服务器SSL配置决定。有两种类型的证书,一种是用RSA签名的,另一种是用EC签名的。如果您想使用带有ECDH的SSL密码,则需要一个EC签名的证书,否则RSA证书只能使用RSA密码。

重要的不是证书如何签名,而是证书中主题密钥的类型(算法),这可能是不同的。实际上,除了RSA和EC之外,还有更多的算法,尽管这些是最常见的。当进行更正时,对于7年前给出的答案没有任何有用的补充。此外,自2018年以来(在现有的Q和A之后),在TLS 1.3密码套件中不再指定kx / auth,并且根本与证书类型/算法无关。 - dave_thompson_085

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