我想使用 openssl pkcs12 将大量 pem 文件转换为 pfx 文件 - 但是是否可以通过命令行传递密码?

我想使用 openssl pkcs12 将大量 pem 文件转换为 pfx 文件 - 但是是否可以通过命令行传递密码?

我想使用 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:”和密码本身之间没有空格。

相关内容