自动多次将用户输入输入到命令 stdin

自动多次将用户输入输入到命令 stdin

我需要在外部应用程序上将数字证书从 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

相关内容