我需要在外部应用程序上将数字证书从 pfx 转换为 pem,以便运行系统命令。我可以使用以下命令从 CLI 执行此操作:
openssl pkcs12 -in path/to/cert.pfx -out path/to/cert.pem
这将提示用户输入证书密码,其次,输入密码。
我尝试过这里提供的解决方案: 自动在命令行中输入
但对我来说,它不起作用。因此,如果我尝试(注意换行符):
printf 'the_password\nthe_passphrase\n' | openssl pkcs12 -in path/to/cert.pfx -out path/to/cert.pem
它仍然会要求我输入密码和密码短语。我也尝试使用echo
,但没有成功。
有任何想法吗?
编辑:
根据 Level9 的建议,我尝试使用 openssl 选项,如下所示:
openssl pkcs12 -in path/to/cert.pfx -out path/to/cert.pem -password pass:the_password -passout pass:
我尝试过提供密码和不提供密码,如示例中所示。现在它会生成 pem 文件,但如果我尝试从文件系统打开它,只是为了检查它是否正确,那么系统会要求我输入密码,但它不会接受我在命令行中提供的密码。
答案1
查看 openssl 中指定密码的选项。
openssl pkcs12 -help
如果这对您不起作用,那么请尝试“expect”实用程序。
sudo apt install expect