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