Не удалось установить безопасный канал для SSL/TLS с полномочиями «xxxxxx.com».C#

Место общения программистов C#
Ответить
Anonymous
 Не удалось установить безопасный канал для SSL/TLS с полномочиями «xxxxxx.com».

Сообщение Anonymous »

Я пытаюсь написать клиент для веб-службы SOAP клиента, используя VS2013 и WCF. Сам веб-сервис находится за их брандмауэром, поэтому они установили прокси-сервер, с которым я пытаюсь связаться. (Похоже, что прокси-сервер реализован с использованием ESB MuleSoft, что может быть актуально, а может и не иметь значения.)

Мне дали https: URL-адрес и имя пользователя/пароль. . Когда я загружаю URL-адрес в браузер, мне предлагается ввести имя пользователя и пароль, а затем я вижу .wsdl. .wsdl указывает внутренний URL-адрес, к которому у меня нет доступа, но я полагаю, что это реальный сайт.

Когда я создаю ссылку на службу в VS2013, используя прокси-сервер URL, мне три раза предлагается ввести имя пользователя и пароль, затем я получаю правильный клиент, настройки в app.config и т. д.

Сгенерированные привязки в приложении .config предназначены для базовой привязки HttpBinding с режимом безопасности Transport и адресом конечной точки, указывающим на этот недоступный внутренний URL-адрес.

Итак, из сгенерированных привязок я:
  • Замените недоступный внутренний URL-адрес прокси-адреса, который мне предоставили.
  • Измените безопасность режим «TransportWithMessageCredentials»
  • Замените ClientCredentials именем пользователя и паролем:

    используя (var client = new MyCustomersServiceClient() )
    {
    var loginCredentials = new ClientCredentials();
    loginCredentials.UserName.UserName = "ausername";
    loginCredentials.UserName.Password = "apassword";

    Код: Выделить всё

    var defaultCredentials = client.Endpoint.Behaviors.Find();
    client.Endpoint.Behaviors.Remove(defaultCredentials);
    client.Endpoint.Behaviors.Add(loginCredentials);
    
    var myData = new MyData
    {
    };
    
    var result = client.receiveData(myData);
    
Когда я запускаю его, я получаю исключение:


Не удалось установить безопасный канал для SSL/TLS с полномочиями «xxxxxx.com».


Просматривая информацию, большая часть того, что я нахожу, указывает на проблемы с SSL-сертификатами, но я не уверен, что имеет смысл. Если бы это было так, я бы ожидал увидеть проблемы при просмотре .wsdl через браузер. И я подумал, что, удалив учетные данные клиента по умолчанию, я обойду проверку сертификата. И я вижу несколько сообщений о более неясных проблемах, которые приводят к такому же сообщению об ошибке.

Я включил ведение журнала сообщений SOAP, но это не дало мне никакой информации. . Он показывает неудавшееся исходящее сообщение, но бесполезно.

Итак, я смотрел трафик в Fiddler. Я вижу два сообщения: HTTP-сообщение для «Tunnel to» с результатом 200 и HTTPS-сообщение для URL-адреса прокси с результатом 401.

На этом этапе я вижу два варианта:
  • Мне нужно установить сертификат SSL, как указано в сообщении об ошибке, или
  • проблема просто в том, что я не предоставляю сервису имя пользователя и пароль в понятном ему виде, и он отклоняет мою попытку подключения.
Я склоняюсь ко второму. Моя проблема? Я ничего не знаю о системе, в которой размещена служба. Я передаю имя пользователя и пароль с помощью, как мне казалось, обычного механизма WCF, но он не работает.

Итак, наконец, вопросы:
  • Ввел ли я себя в заблуждение и мне действительно нужно возиться с SSL-сертификатами?
  • Если нет, что делать Я использую WCF для передачи имени пользователя и пароля веб-службе HTTPS, размещенной MuleSoft
    ESB? (Mule EE Core Extensions/3.5.1, если это поможет).


Подробнее здесь: https://stackoverflow.com/questions/261 ... -xxxxx-com
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»