在调用 Add-AzureCertificate 之前确定 .pfx 文件是否需要密码
Determine if a .pfx file needs a password before calling Add-AzureCertificate
我正在使用以下代码在 Azure 云服务上安装 .pfx 文件:
Add-AzureCertificate -serviceName $CloudServiceName -certToDeploy $PfxFile.FullName -ErrorAction 'Stop' -Password $applicationCertsPassword
我认为它抛出异常,因为 .pfx 文件不需要密码。
如何预先确定 .pfx 文件是否需要密码?
编辑:
我想事先确定 .pfx 文件是否有密码,这样我就可以在 catch 块中没有密码参数的情况下再次避免 运行 commandlet。
您总是可以将它放在 Try{}
中,然后在 Catch{}
中不带密码执行相同的命令,但这是一种肮脏的脚本。
Try{
Add-AzureCertificate -serviceName $CloudServiceName -certToDeploy $PfxFile.FullName -ErrorAction 'Stop' -Password $applicationCertsPassword
}
Catch{
Add-AzureCertificate -serviceName $CloudServiceName -certToDeploy $PfxFile.FullName -ErrorAction 'Stop'
}
我想我可能会做的是尝试将证书加载为没有密码的对象,如果失败,我会知道它有密码。
$OldEA = $ErrorActionPreference
$ErrorActionPreference = SilentlyContinue
If([System.Security.Cryptography.X509Certificates.X509Certificate2]::CreateFromCertFile($pfxfile.fullname)){"No Password"}
$ErrorActionPreference = $OldEA
很确定这会完成您想要的。不过,我现在碰巧没有没有密码的 PFX 文件来验证,因为正如 Jan 指出的那样,它们通常不是你应该拥有的东西。
用于上传到 Azure 云服务的 .pfx 证书文件必须包含私钥,因此它必须受密码保护。上传后,系统会要求您输入该密码。
我正在使用以下代码在 Azure 云服务上安装 .pfx 文件:
Add-AzureCertificate -serviceName $CloudServiceName -certToDeploy $PfxFile.FullName -ErrorAction 'Stop' -Password $applicationCertsPassword
我认为它抛出异常,因为 .pfx 文件不需要密码。
如何预先确定 .pfx 文件是否需要密码?
编辑: 我想事先确定 .pfx 文件是否有密码,这样我就可以在 catch 块中没有密码参数的情况下再次避免 运行 commandlet。
您总是可以将它放在 Try{}
中,然后在 Catch{}
中不带密码执行相同的命令,但这是一种肮脏的脚本。
Try{
Add-AzureCertificate -serviceName $CloudServiceName -certToDeploy $PfxFile.FullName -ErrorAction 'Stop' -Password $applicationCertsPassword
}
Catch{
Add-AzureCertificate -serviceName $CloudServiceName -certToDeploy $PfxFile.FullName -ErrorAction 'Stop'
}
我想我可能会做的是尝试将证书加载为没有密码的对象,如果失败,我会知道它有密码。
$OldEA = $ErrorActionPreference
$ErrorActionPreference = SilentlyContinue
If([System.Security.Cryptography.X509Certificates.X509Certificate2]::CreateFromCertFile($pfxfile.fullname)){"No Password"}
$ErrorActionPreference = $OldEA
很确定这会完成您想要的。不过,我现在碰巧没有没有密码的 PFX 文件来验证,因为正如 Jan 指出的那样,它们通常不是你应该拥有的东西。
用于上传到 Azure 云服务的 .pfx 证书文件必须包含私钥,因此它必须受密码保护。上传后,系统会要求您输入该密码。