生成 CSR 失败,提示“routines:RSA_sign:digest 对于 rsa 来说太大”-针对 heroku

生成 CSR 失败,提示“routines:RSA_sign:digest 对于 rsa 来说太大”-针对 heroku

我尝试按照以下步骤生成 CSRHeroku 说明。 具体来说

openssl genrsa -des3 -out server.pass.key 2048
openssl rsa -in server.pass.key -out server.key
openssl req -nodes -new -key server.key -out server.csr
# input data here

我收到以下错误:

140509003069088:error:04075070:rsa routines:RSA_sign:digest too big for rsa key:rsa_sign.c:127:
140509003069088:error:0D0DC006:asn1 encoding routines:ASN1_item_sign_ctx:EVP lib:a_sign.c:314:

我正在使用 openssl 版本:

OpenSSL> version
OpenSSL 1.0.1f 6 Jan 2014 

我究竟做错了什么?

答案1

我遇到了同样的问题,这是由于在需要密钥大小的命令中放置 256 引起的。输入 1024 有效,而您的命令中是 2048

答案2

虽然这很有趣,但我最终还是换了另一台机器(相同的 openssl 版本)。效果很好。在我尝试过的另外 2 台机器上也有效。

所以解决方案:切换到另一台机器

答案3

当我错误地输入上一个命令的密钥长度时,就会发生这种情况。例如,输入的是“409”位而不是“4096”-

openssl genrsa -out key.pem 409
openssl req -subj '/CN=client' -new -key key.pem -out client.csr
(error)

对阵

openssl genrsa -out key.pem 4096
openssl req -subj '/CN=client' -new -key key.pem -out client.csr
(success)

因此,也许可以尝试后退几个步骤并确保所有先前的命令都输入正确。

相关内容