当没有密码时,OpenSSL 使用 -passin 或 -passout

当没有密码时,OpenSSL 使用 -passin 或 -passout

我正在使用 OpenSSL 从 pkcs12 pfx 文件导出密钥

openssl pkcs12 -in my.pfx -nocerts -out my.key -passout pass: -passin pass:

但它会产生一个错误:

Error outputting keys and certificates
18408:error:0907E06F:PEM routines:DO_PK8PKEY:read key:.\crypto\pem\pem_pk8.c:130:

答案1

它正常工作:

openssl pkcs12 -in my.pfx -nocerts -out my.key -passout 密码:-passin 密码:""

答案2

因此,正如许多人一样,在写这个问题的时候,我尝试了很多方法,最后我明白了:-)

在某些情况下,您可以指定“-passin pass:”,后面不输入任何内容,或者指定“-passout pass:”,系统会将其视为无密码,但至少在上述情况下,对我来说,它会抛出上述错误。这可能是我使用的版本中的错误,我不知道。

一个不会失败的好办法(至少对我来说)是创建一个文件,我将其命名为emptypw.txt,并只放一个空行(在Linux / Unix中只是一个lf,在Windows中只是一个cr-lf),然后使用“-passin file:emptypw.txt”指定此空密码文件用于输入或使用“-passout file:emptypw.txt”指定输出

这应该可以解决任何人使用 OpenSSL 自动导出的问题,您必须指定输入和输出密码以防止它提示用户输入这些密码,并且一个或两个密码都需要为空(无密码)。

相关内容