You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在脚本中自动跳过.pfx文件提取证书私钥的密码输入?

问题:自动跳过OpenSSL提取PFX文件时的密码输入

希望在Bash/PowerShell脚本中执行以下两条OpenSSL命令,从KeyVaultcertificate.pfx文件中提取证书和私钥,但这些命令需要输入密码,手动执行时只需按回车即可跳过,请问如何在脚本中实现自动跳过或自动填充密码?

openssl pkcs12 -in  KeyVaultcertificate.pfx -clcerts -nokeys -out  server.crt
openssl pkcs12 -in KeyVaultcertificate.pfx -nocerts -out key.pem -nodes

Bash 脚本实现方式

手动按回车跳过密码说明PFX文件的密码为空,直接用OpenSSL的-passin参数指定空密码即可避免交互:

提取证书

openssl pkcs12 -in KeyVaultcertificate.pfx -clcerts -nokeys -out server.crt -passin pass:

提取私钥

openssl pkcs12 -in KeyVaultcertificate.pfx -nocerts -out key.pem -nodes -passin pass:

如果需要兼容旧版本OpenSSL,也可以用管道传递空输入:

echo "" | openssl pkcs12 -in KeyVaultcertificate.pfx -clcerts -nokeys -out server.crt
echo "" | openssl pkcs12 -in KeyVaultcertificate.pfx -nocerts -out key.pem -nodes

PowerShell 脚本实现方式

PowerShell中同样支持-passin参数,或者通过管道传递空字符串:

方法1:使用-passin参数

openssl pkcs12 -in KeyVaultcertificate.pfx -clcerts -nokeys -out server.crt -passin pass:
openssl pkcs12 -in KeyVaultcertificate.pfx -nocerts -out key.pem -nodes -passin pass:

方法2:管道传递空输入

Write-Output "" | openssl pkcs12 -in KeyVaultcertificate.pfx -clcerts -nokeys -out server.crt
Write-Output "" | openssl pkcs12 -in KeyVaultcertificate.pfx -nocerts -out key.pem -nodes

补充说明

-passin pass: 明确传递空密码,对应手动按回车的操作;提取私钥时的-nodes参数本身会让私钥不加密,所以无需额外处理加密密码环节。

内容的提问来源于stack exchange,提问作者nick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 00:38:24