Отправка сертификата клиента в HttpWebRequest - PullRequest
2 голосов
/ 20 марта 2010

Я пытаюсь передать клиентский сертификат на сервер, используя приведенный ниже код, однако я все еще возрождаю ошибку 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() );

Ответы [ 3 ]

2 голосов
/ 02 июля 2011

Проблема заключалась в том, что некоторые системы не имели промежуточного центра сертификации, от которого зависел этот сертификат. Это также странно, потому что файл pfx этого сертификата содержит оба сертификата.

0 голосов
/ 20 марта 2010

Пароль правильный?Я не знаком с .net способ сделать это, но я предполагаю, что «Боб» является паролем.Измените на «Рик» и посмотрите, если вы получите ошибку.Если так, то вы, вероятно, делаете все правильно.Если все так же, как если бы вы использовали «bob», возможно, проблема с паролем.

0 голосов
/ 20 марта 2010

Это может быть неправильный сертификат, может отсутствовать сертификат и т. Д. Используйте Fiddler (бесплатно) в качестве прокси для перехвата трафика, и вы увидите, подключен ли сертификат или нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...