単純な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への呼び出しが失敗し、内部例外を参照してください」内部例外で - >「受信したメッセージが予想外だったか、フォーマットが正しくありませんでした。