2

次のコードを使用して、Azure クラウド サービスに .pfx ファイルをインストールしています。

Add-AzureCertificate -serviceName $CloudServiceName -certToDeploy $PfxFile.FullName -ErrorAction 'Stop' -Password $applicationCertsPassword

.pfx ファイルはパスワードを必要としないため、例外がスローされていると思います。

.pfx ファイルにパスワードが必要かどうかを事前に確認するにはどうすればよいですか?

編集: .pfx ファイルにパスワードがあるかどうかを事前に判断したいので、catch ブロックにパスワード引数を指定せずにコマンドレットを再度実行することを避けることができます。

4

2 に答える 2

3

You could always put it in a Try{} and then do the same command without the password in the Catch{}, but that's kind of dirty scripting.

Try{
    Add-AzureCertificate -serviceName $CloudServiceName -certToDeploy $PfxFile.FullName -ErrorAction 'Stop' -Password $applicationCertsPassword
}
Catch{
    Add-AzureCertificate -serviceName $CloudServiceName -certToDeploy $PfxFile.FullName -ErrorAction 'Stop'
}

What I think I would probably do instead is attempt to load the certificate up as an object with no password, and if that fails I'd know that there's a password for it.

$OldEA = $ErrorActionPreference
$ErrorActionPreference = SilentlyContinue
If([System.Security.Cryptography.X509Certificates.X509Certificate2]::CreateFromCertFile($pfxfile.fullname)){"No Password"}
$ErrorActionPreference = $OldEA

Pretty sure that'll accomplish what you want. I don't happen to have a PFX file without a password to verify with right now though, because as Jan pointed out they aren't really something you should have in general.

于 2015-04-10T03:27:13.140 に答える
1

Azure クラウド サービスへのアップロードに使用する .pfx 証明書ファイルには秘密キーが含まれている必要があるため、パスワードで保護する必要があります。アップロードすると、そのパスワードを求められます。

于 2015-04-10T03:35:56.903 に答える