質問がばかげている場合は、事前にお詫び申し上げます。
Azure で asmx サービスを実行しています (HTTP - SSL なし)。
X509Certificate2 をロードし、次のようにしてリクエストに追加する WPF アプリがあります。
X509Certificate2 cert = new X509Certificate2("...");
webRequest.ClientCertificates.Add(cert);
Webサービスでは、証明書を取得します
new X509Certificate2(this.Context.Request.ClientCertificate.Certificate)
次に、次のサンプルを使用して、(Azure コントロール パネルにアップロードし、サービス定義ファイルに追加した) 証明書を読み込みます。
var store = new X509Store(StoreName.My, StoreLocation.LocalMachine);
store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);
X509Certificate2Collection certs = store.Certificates.Find(X509FindType.FindBySubjectName, certName, true);
そして、次のようにして検証します。
clientCert.Thumbprint == certs[0].Thumbprint
残念ながら、すぐに例外 ( System.Security.Cryptography.CryptographicException: m_safeCertContext is an invalid handle )が発生します。
Request.ClientCertificate.Certificate
いくつか質問があります。例外を回避するにはどうすればよいですか。この回答は、IIS 設定を変更する必要があると述べていますが、Azure でそれを行うにはどうすればよいですか?
いずれにせよ、これは証明書認証を行う適切な方法ですか?
ありがとう!