我正在尝试使用Let's Encrypt为我的Web服务器生成证书。我想用openssl手动生成密钥和csr,然后使用letsencrypt / certbot获取证书。我特别希望证书使用sha256withecdsa
。特别地,我想使用曲线secp521r1
(a.k.a. P-521
)。
但是,当我输入命令时,密钥生成和CSR生成工作正常
certbot certonly --apache -d [censored] --csr mycsr.csr --agree-tos
我得到以下错误:
请求消息格式不正确::证书请求中的密钥无效::不允许ECDSA曲线P-521ECDSA
仍然不受支持吗?还是我做错了什么?
2条答案
按热度按时间vxbzzdmp1#
虽然P-521是用于X.509证书的valid,但大多数浏览器都放弃了对它的支持,因为它不是Suite B的一部分,也不是很流行。因此,Certbot doesn't allow证书将使用P-521生成,因为浏览器无论如何都会拒绝它。您仍然可以使用P-256和P-384曲线生成证书。请参阅Mozilla和Google bugreports了解详细信息。
eivnm1vs2#
除了我对@AfroThundr回复的评论,事实上,这方面的权威信息来源是https://letsencrypt.org/docs/integration-guide/,它说:
支持的关键算法
Let's Encrypt接受长度从2048到4096位的RSA密钥,以及P-256和P-384 ECDSA密钥。对于帐户密钥和证书密钥都是如此。不能将帐户密钥重复用作证书密钥。
我们的建议是提供双证书配置,默认情况下提供RSA证书,并为那些表示支持的客户端提供(小得多的)ECDSA证书。