4

.NET 4.0 フレームワークを使用して、サーバーからサーバーへの HTTPS SOAP サービス呼び出しを作成しようとしています。クライアント側のサーバーで、呼び出しを受信したサーバーが私を識別できるように、ローカル SSL 証明書を追加しようとしています。

追加しようとしている証明書は、ローカル マシンのストアからのものではなく (たとえそうであっても問題は解決しません)、マシンにローカル ファイルとして配置された (.cer) ファイルにすぎません。

コードは正常に動作し、証明書を追加しているように見えますが、私の System.Net.trace.log ファイルは呼び出しごとに次のエラーを追加し続けます: 「LocalMachine ストアまたは CurrentUser ストアのいずれかに証明書が見つかりません。」呼び出しようとしているサーバーは、要求に証明書が添付されていないと言い続けます。私が得る最終的な WebException は次のとおりです。私の GetCertificate 関数:

private X509Certificate2 GetCertificate()
{
    X509Certificate2 cert;
    try
    {
        cert = new X509Certificate2("MyCertificateFoder\\MyCertificate.cer");
    }
    catch (Exception ex)
    {
        throw;
    }
    return cert;
}

サービスコールコード:

X509Certificate2 cert = GetCertificate();
ServiceClient.ClientCertificates.Add(cert);
serviceMethodResponse = ServiceClient.ServiceMethod(serviceMethodRequest);

アドバイスをいただければ幸いです。

ありがとう

4

1 に答える 1

3

ここでの主な誤りは、クライアント認証で SSL を使用する場合、.pfx ファイル (クライアントの秘密鍵、証明書、証明書チェーン、ルート機関証明書を含む) を使用する必要があることです。

.cer ファイルではありません。

これがエラーの原因です。

于 2016-01-11T13:56:42.223 に答える