Как проверить, не настроен ли сертификат сервера для https sys

#java #c# #wcf #ws-security #mutual-authentication

Вопрос

Может быть, этот вопрос уже есть, но я думаю, что есть другая ситуация. Я настраиваю все необходимое из файла веб — конфигурации и устанавливаю сертификаты.

Я использую веб-службу java в ASP.NET ВЕБ-API. В службе SOAP была настроена взаимная аутентификация. (Двусторонний SSL) У меня есть 2 файла хранилища ключей. (клиент.jks и truststore.jks)

Моя полная ошибка: Это может быть связано с тем, что сертификат сервера неправильно настроен с HTTP.SYS в случае HTTPS. Это также может быть вызвано несоответствием привязки безопасности между клиентом и сервером.’

Ответ №1

Попробуйте указать один и тот же протокол на клиенте и сервере. Добавьте следующий код в клиент:

System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12;

1. Спасибо за ответ, но я уже пробовал этот код. Я получаю ту же ошибку.

Я создаю wcf-клиент, который потребляет услугу в бразильском правительственном учреждении. Это соединение использует Soap 1.2, и его необходимо подписать с помощью цифрового сертификата.

Код, используемый для этого примера, представляет собой консольное приложение с использованием.Net 4.6.1. Основное приложение — приложение WPF (я не использую IIS). Этот код работает без проблем в Windows 10, но когда я пытаюсь запустить его в Windows 7, он вызывает следующую ошибку:

Это код вызова клиента:

XmlNode node = null;

var parametro = new TConsStatServ();
parametro.cUF = NFeAPI.XMLSchemas.NfeStatusServico2.Envio.TCodUfIBGE.Item53;
parametro.tpAmb = NFeAPI.XMLSchemas.NfeStatusServico2.Envio.TAmb.Item2;
parametro.versao = «3.10»;
parametro.xServ = TConsStatServXServ.STATUS;

var certificate = GetCertificateByName(«Certificate Name», false);

string nFeNamespaceName = «http://www.portalfiscal.inf.br/nfe»;
string parametroXML = XmlUtil.Serialize(parametro, nFeNamespaceName);

XmlDocument doc = new XmlDocument();
XmlReader reader = XmlReader.Create(new StringReader(parametroXML));
reader.MoveToContent();

node = doc.ReadNode(reader);

nfeCabecMsg soapHeader = new nfeCabecMsg();
soapHeader.cUF = parametro.cUF.ToString().Replace(«Item», «»);
soapHeader.versaoDados = «3.10»;

var soapClient = new NfeStatusServico2SoapClient(«NfeStatusServico2Soap»);
soapClient.ClientCredentials.ClientCertificate.Certificate = certificate;

XmlNode result = soapClient.nfeStatusServicoNF2(ref soapHeader, node);

Вот мой App.config:

Читать также:  Реестр лагерей пермского края по сертификатам

GetCertificateByName — это вспомогательный метод, который я создал для возврата службы X509Certificate2.

Я также попытался использовать WebReference с приложением.NET 2.0, и он дал ту же ошибку. Я обновил код для использования wcf в.net 4.6.1 в надежде на его работу.

Я пытался использовать скрипт для отслеживания проблемы, и он возвращает код 200, но не очень помогает в этом.

Это было 5 дней, и я не могу обойти эту проблему. Из-за этого я собираюсь отказаться от поддержки Windows 7 в своем приложении.

Я создаю клиент wcf, который потребляет услугу от бразильского государственного учреждения. Это соединение использует Soap 1.2, и оно должно быть подписано цифровым сертификатом.

В данном примере используется консольное приложение, использующее .Net 4.6.1.
Основное приложение-это приложение WPF (я не использую IIS). Этот код работает без проблем на Windows 10, но когда я пытаюсь запустить его на Windows 7, он дает мне следующую ошибку:

Вот мое приложение.конфигурация:

GetCertificateByName-это вспомогательный метод, который я создал, чтобы вернуть x509certificate2, необходимый службе.

Я также пытался использовать WebReference с приложением .NET 2.0, и это дало ту же ошибку. Я обновил код для использования wcf в .net 4.6.1 в надежде, что он будет работать.

Я попытался использовать fiddler для отслеживания проблемы, и он возвращает код 200, но не очень помогает с этим.

Прошло уже 5 дней, а я не могу. сумейте обойти эту проблему. Из-за этого я собираюсь отказаться от поддержки Windows 7 в своем приложении.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *