我想使用 openssl pkcs12 将大量 pem 文件转换为 pfx 文件 - 但是是否可以通过命令行传递密码?
我有相当多的 pem 文件:
因此,我想在 Powershell 中输入一次密码,然后通过命令行传递该密码 -> 而不必为每个 pem 手动输入两次。
这可能吗?
我已经尝试过 -pass pass: 但是没有用:-
openssl pkcs12 -export -out outfile.pfx -inkey pem.key -in pem.cert -pass pass: somePassword
仅供参考:这是我当前的 Powershell 脚本:-
$TopLevel = "C:\CertConversion\"
$OutputFolder = "$TopLevel"+"Processed\"
$CertFolder = "$TopLevel"+"CertsToProcess\"
$PasswordIWantToUse = Read-Host "PEM Conversion - Please enter a password"
$list = Get-ChildItem -Path $CertFolder
ForEach($i in $list)
{
$pemName = $i.Name
$list = Get-ChildItem -Path $CertFolder
$simpleName = $pemName.Replace(".pem","")
$OutputFile = "$OutputFolder"+"$simpleName"+".pfx"
openssl pkcs12 -export -out $OutputFile -inkey "$CertFolder$pemName" -in "$CertFolder$pemName"
}
注意:对于每个 pem,我目前都会提示“输入导出密码:”,然后重新提示“验证 - 输入导出密码:”
我又试了一次——基于@JMusgrove 的回答中的建议
答案是:-password pass:
全文如下:
openssl pkcs12 -export -out $OutputFile -inkey "$CertFolder$pemName" -in "$CertFolder$pemName" -password pass:$PasswordIWantToUse
答案1
根据内置帮助,参数如下:
-password p set import/export password source
-passin p input file pass phrase source
-passout p output file pass phrase source
你可能只需要将你的-pass
论点-password
改为-passout
编辑:此外,在我见过的其他例子中,“pass:”和密码本身之间没有空格。