0
Azure Key Vaultでの認証に証明書を使用する必要がありますが、アップロードした鍵にアクセスできません。私はこれらのステップを踏んだ:Azureクラウドサービスでx509証明書を取得
ポータルを介してクラウドサービスにアップロードされたキー(.pfx)。キー取得するには、このコードを使用ServiceConfiguration
へを追加しました。この
<Certificates>
<Certificate name="keyvault" thumbprint="<my_thumbprint>" thumbprintAlgorithm="sha1" />
</Certificates>
サービス定義
<Certificates>
<Certificate name="keyvault" storeLocation="LocalMachine" storeName="CA" />
</Certificates>
に追加され、これを:
var store = new X509Store(StoreName.My, StoreLocation.CurrentUser);
StoreLocation.LocalMachine);
try
{
store.Open(OpenFlags.ReadOnly);
var col = store.Certificates.Find(X509FindType.FindByThumbprint,
<thumbprint_value>, false); // Don't validate certs, since the test root isn't installed.
if (col == null || col.Count == 0)
return null;
return col[0];
}
finally
{
store.Close();
}
しかし、私はこれを参照してくださいサービスを開始例外:
Value cannot be null.
Parameter name: certificate
必要な設定はありますか?
感謝。この設定を使用すると、certmgrを使用して証明書をインストールした状態でローカルで動作しますが、クラウドサービスにデプロイした場合は動作しません。 –
これは、ローカルマシンで読んでいる場所のストアに既に証明書がインストールされている可能性があるためです。 「CurrentUser」の「個人」証明書ストアから証明書を削除して、コードを実行してみてください。 –
証明書をAzureにアップロードした後に保存された証明書とは別のストアにローカルに保存していたという問題。これをAzureで動作させるには、次のようにx509ストアを作成する必要があります。var store = new X509Store(StoreName.CertificateAuthority、StoreLocation.LocalMachine)コードの最後の2行を更新すると答えが正しいとマークできます –