2016-05-26 20 views
5

Azure App ServiceにWebアプリケーションとしてWebアプリケーションをデプロイしました。 私はAzure Portalにいくつかの証明書をアップロードしました。これは、WebアプリケーションがSSL上で実行され、別の証明書を使用して復号化を行うためです。私は、証明書を見つけるために、(ローカルで正常に動作します)メソッドを持っている後者のケースではAzure Web Appで証明書が見つかりません

public static X509Certificate2 FindCertificate(KnownCertificate certificate) 
    { 
     return FindCertificate(StoreName.My, StoreLocation.CurrentUser, X509FindType.FindByThumbprint, certificate.Thumbprint); 
    } 

しかし、私は拇印XYZとの証明書が見つからないというエラーが表示されます。 Azureポータルには存在しますが。 (アップロードしてインポートしました)

StoreLocation.CurrentUserをTHIS POSTに示唆しているとおり使用していますが、それでも機能しません。私は間違った店を使用していますか?

編集:私はremotetly私のWebAppのをデバッグするために管理しているとVisualStudioをのImmediateWindow機能で、私はこのコード

StoreNamesとStoreLocationsのすべての可能な組み合わせをテスト
new X509Store(StoreName.CertificateAuthority, StoreLocation.CurrentUser).Certificates.Find(findType, findValue, false).Count; 

が、無駄にし、実行しています。

httpsトラフィック以外の目的で証明書を使用する場合、クラウドサービスが必要であり、App Servicesがそれをサポートしていないと思われる可能性がありますか?here

+0

「Azure」アプリケーションサービスに証明書をアップロードすると、「すべての可能な組み合わせをテスト」する必要はありません。これは常にStoreName.My、Store Location.CurrentUserに移動します。 – Dhanuka777

答えて

9

ウェブアプリケーションのアプリ設定にWEBSITE_LOAD_CERTIFICATESを追加する必要があります。値を「*」に設定するか、Webアプリケーション環境にロードする証明書の拇印に設定します。私の個人的な好みは、この値を '*'に設定することです。つまり、アップロードされたすべての証明書を読み込みます。この変更を適用した後

enter image description here

あなたのWebアプリケーションのコード内から証明書をロードすることができるはずです。

証明書の使用方法の詳細については、hereをご覧ください。この記事は少し古い(今日の基準ではあるが)、まだ関連性がある。

+0

Thanx Rickはい、最終的に昨日の夜私はそれを自分で解決しましたが、まだ答えを更新していませんでした。難しいのは、Web.configの設定を最初に追加しても機能しなかったことです。ポータルから追加するだけです。 –

+0

私はこれを試しても、まだ動作していません。証明書はCAによって署名されていなければなりませんか?それとも自己署名証明書ですか? – MBen

+0

自己署名はまったく同じです。実際、それは私が上記の答えで使用したものです。秘密の文字をコピーしないように、証明書の拇印をコピーするように注意してください。たとえば、拇印をコピーしてメモ帳に貼り付け、メモ帳からコピーしてアプリの設定に貼り付けます。 –

関連する問題