2009-06-30 21 views
1

単純なxmlベースのWebサービスにアクセスするためにPKCS#12証明書が発行されました。 PKCS#12ファイルをWindows(Vista)に読み込むと、ブラウザを使用してサービスにアクセスできます。.NET WebRequestでPKCS#12証明書ファイルを使用する方法

OS証明書のコレクションにPKCS#12をロードせずに、私は次のコードを書かれている、アプリケーションを介してサービスにアクセスしようとすると:

// The certificate i'm using can not be authenticated as it is a development one. 
// For now, just ignore it. 
static bool myRemoteCertificateValidationCallback(
     Object sender, 
     X509Certificate certificate, 
     X509Chain chain, 
     SslPolicyErrors sslPolicyErrors 
) 
{ return true; } 

static void Main(string[] args) 
{ 
    ServicePointManager.ServerCertificateValidationCallback = myRemoteCertificateValidationCallback; 
    X509Certificate Cert = new X509Certificate(@"certificatefile.p12","medialab"); 
    HttpWebRequest Req = (HttpWebRequest)WebRequest.Create("https://ServiceURL"); 
    Req.ClientCertificates.Add(Cert); 

    Stream S = Req.GetResponse().GetResponseStream(); 
    TextReader TR = new StreamReader(S); 
    string Ret = TR.ReadToEnd(); 
    Console.Write(Ret); 

} 

は、悲しいことに、このコードは失敗し、私はSystem.Netを取得.WebException:要求が中止されました:SSL/TLSセキュアチャネルを作成できませんでした。 PKCS#12ファイルをWindowsに読み込むと、コードが突然動くことに気付きました。

ファイルを単独で使用してWindows証明書ストアを使用しないようにするには、何が必要ですか?

おかげで、 ボアズ

さらに詳しい情報:ちょうど私のVisual StudioにSP1を適用して、今、私は別の例外を取得:「SSPIへの呼び出しが失敗し、内部例外を参照してください」内部例外で - >「受信したメッセージが予想外だったか、フォーマットが正しくありませんでした。

答えて

2

証明書を証明書ストアにインストールする必要があります。最も簡単な方法は、IEを使用して証明書をインポートすることです。

関連する問題