мы используем сторонние сервисы 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 со своим сертификатом.