OpenSSL:如何将PFX转换为脚本中的PEM



如果我运行openssl pkcs12 -in cert.pfx -out cert.pem -password pass:mypass,可以成功将PFX转换为PEM。我将被提示输入PEM密码,以便在.pem文件中加密私钥。

但是,在脚本中,如何自动输入PEM密码?我尝试使用-passin参数,但没有效果。

我猜想,如果我分别加入PEM证书和PEM密钥(不是来自PFX),那将等同于从PFX转换为PEM,但是来自PFX的PEM文件具有外面的那些袋子属性base64字符串和我不知道这是否重要。

因此,如何使用加密的私钥正确"创建" PEM文件,而不会提示形式密码?

如果您查看openssl pkcs12文档,您将看到:

-passin arg

PKCS#12文件(即输入文件)密码源。有关ARG格式的更多信息,请参见通过短语参数openssl(1)。

中的部分

- 超越arg

传递短语源以加密使用任何输出的私钥。有关ARG格式的更多信息,请参见通过短语参数openssl(1)。

中的部分

哪个指向您:

通过短语选项

几个命令接受密码参数,通常使用-Passin并分别用于输入和输出密码。这些允许从各种来源获得的密码。这两个选项以下面描述其格式的单个参数。如果不给出密码参数并需要密码,然后用户为提示输入一个:通常会从当前读取终端回声关闭。

请注意,字符编码可能相关,请参阅密码编码(7)。

通过:密码

实际密码是密码。由于公用事业可见密码(例如Unix下的'PS'),该表格仅应在安全并不重要。env:var

从环境变量var中获取密码。由于在某些平台上可以看到其他过程的环境(例如PS在某些Unix OS下)应谨慎使用此选项。文件:路径名

路径名的第一行是密码。如果将相同的路径名参数提供给-Passin和-passout参数,则第一个行将用于输入密码,下一行将用于输出密码。路径名不必参考常规文件:它可以例如,请参阅设备或命名管道。FD:数字

从文件描述符编号中读取密码。例如,这可以用来通过管道发送数据。stdin

从标准输入中读取密码。

为了将其全部结合在一起:

openssl pkcs12 -in cert.pfx -out cert.pem -passin pass:mypass -passout: pass:mypass

为什么-Password不适合您:

-password arg

使用-Export,-password等于-Passout。否则,-Password等于-Passin。

因此,既然您不使用" -Export"它的作用与" -passin"相同。选项。由于这种行为,我喜欢明确使用" -passin"。和" - 超速"而是。

最新更新