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

密码是否正确?我不熟悉这样做的.net 方式,但我认为“bob”是密码。更改为“rick”,看看是否有错误。如果是这样,那么你可能做对了。如果一切都与使用“bob”相同,则密码可能有问题。

于 2010-03-20T16:57:04.443 回答
0

它可能是错误的证书,可能是缺少证书等。使用 Fiddler(免费)作为代理来拦截流量,您将看到证书是否附加。

于 2010-03-20T04:26:12.630 回答