требующий wcf HTTP-запрос был запрещен с помощью схемы аутентификации клиента Anonymous - PullRequest
0 голосов
/ 02 октября 2018

мы используем сторонние сервисы WCF, приложение работало нормально, мы собирались начать работу, и клиент реализовал ssl-сертификат.

Подробная информация об изменении SSL. EMAIL, ПОЛУЧЕННЫЙ ОТ ХОСТА

Во время объявленных изменений мы произвели изменение SSL-сертификата.Орган по выдаче сертификатов (CA) для подстановочного сертификата . . * Теперь является DigiCert Global Root G2.

Необходимо установить сертификат DigiCert Global Root G2 только в соответствующее приложение и not сертификат . . * Вообще

Новый корневой сертификат CA, необходимый для выполнения рукопожатия SSL, можно найти на веб-сайте DigiCert

Цепочка сертификатов для клиентского сертификата выглядит следующим образом:

1.Сертификат корневого ЦС: 2.Средний сертификат ЦС: 3. Сертификат клиента: USER1001.p12

Выдающий центр сертификации (ЦС) цепочкой сертификатов клиента является CA XYZABC Systems.Если сертификаты корневого ЦС и Промежуточного ЦС не интегрированы в ваше хранилище доверенных сертификатов, то в сертификате клиента в вашей системе будет отображаться ошибка, связанная с невозможностью найти эмитента сертификата.Однако ваш клиентский сертификат будет по-прежнему распознаваться как действительный хост-системой и ее веб-сервером, даже без интеграции сертификатов корневого ЦС и промежуточного ЦС в хранилище доверенных сертификатов.

Я скачал весь сертификат и установилв моей локальной машине.здесь приложил мой код, который работал ранее и начал выдавать ошибку после реализации sll.

  System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12;
        WSHttpBinding binding = new WSHttpBinding();

        binding.Security.Mode = SecurityMode.Transport;

        binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Certificate;

        //Creates ServiceClient, attach transport-binding, Endpoint and the loaded certificate
        Services service = new Services (binding, new EndpointAddress(EndPoint));

         X509Certificate2 cert = new X509Certificate2( ApplicationSetting.CertificateFilePath,  ApplicationSetting.PrivateKeyPassword, X509KeyStorageFlags.PersistKeySet );

        service.ClientCredentials.ClientCertificate.Certificate = cert;
        service.Endpoint.EndpointBehaviors.Add(new CustomMessageInspector());
        Response response;
        try
        {
             response = service.Callservice(g110Request);
        }
        catch (Exception ex)
        {
            log.Error(ex.ToString());
            throw;
        }

когда мы снова подходим к клиенту, они ответили этим.

Ошибка 403 указывает нанедостающий сертификат.Пожалуйста, проверьте, если вы установили параметры сертификата в вашей среде.Если вы используете SoapUI, перейдите в «Настройки» -> «Настройки SSL» и проверьте каталог KeyStore со своим сертификатом.

...