2

以下のコードを使用してクライアント証明書をサーバーに渡そうとしていますが、それでも HTTP エラー 403.7 - 禁止されています: SSL クライアント証明書が必要です。HttpWebRequest がクライアント証明書を送信しない理由として考えられるものは何ですか?

var clientCertificate = new X509Certificate2( @"C:\Development\TestClient.pfx", "bob" );

                    HttpWebRequest tRequest = ( HttpWebRequest )WebRequest.Create( "https://ofxtest.com/ofxr.dll" );

                    tRequest.ClientCertificates.Add( clientCertificate );
                    tRequest.PreAuthenticate = true;
                    tRequest.KeepAlive = true;
                    tRequest.Credentials = CredentialCache.DefaultCredentials;
                    tRequest.Method = "POST";
                    var encoder = new ASCIIEncoding();
                    var requestData = encoder.GetBytes( "<OFX></OFX>" );

                    tRequest.GetRequestStream().Write( requestData, 0, requestData.Length );
                    tRequest.GetRequestStream().Close();

                    ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback( CertPolicy.ValidateServerCertificate );
                    WriteResponse( tRequest.GetResponse() );
4

3 に答える 3

2

この問題は、一部のシステムに、この証明書が依存する中間認証局がないことが原因であると思われました。この証明書の pfx ファイルに両方の証明書が含まれていたことも奇妙です。

于 2011-07-01T20:00:53.300 に答える
0

証明書が間違っている、証明書がないなどの可能性があります。Fiddler (無料) をプロキシとして使用してトラフィックを傍受すると、証明書が添付されているかどうかがわかります。

于 2010-03-20T04:26:12.630 に答える
0

パスワードは正しいですか?これを行う .net の方法には詳しくありませんが、「bob」がパスワードであると想定しています。「rick」に変更して、エラーが発生するかどうかを確認します。もしそうなら、あなたはおそらくそれを正しくやっています。「bob」を使用した場合とすべてが同じ場合は、パスワードに問題がある可能性があります。

于 2010-03-20T16:57:04.443 に答える