Не удалось создать безопасный канал SSL/TLS. Может ли проблема быть прокси-сервером?

У меня есть приложение С#, которое вызывает метод веб-службы, который аутентифицируется с использованием сертификата. Код работает, потому что когда он установлен на сервере A (без прокси), он аутентифицируется.

Когда я устанавливаю код на сервере B, на клиентском сайте, он устанавливается за прокси. Я действительно пробовал почти все, но я продолжаю получать эту ошибку:

Не удалось создать безопасный канал SSL/TLS

Считаете ли вы, что эта проблема может быть вызвана прокси-сервером? Если у вас был личный опыт, пожалуйста, поделитесь.

Спасибо

Ответ 1

По моему опыту, почти все такие сообщения связаны с какой-то машиной в цепочке (клиент, прокси, сервер), по какой-то причине "не нравится" сертификат.

Чтобы уточнить, что сказал twk, если вы используете самозаверяющие сертификаты или собственный CA, вам необходимо установить сертификат подписи в хранилище доверенных ведомств на сервере, по крайней мере, и, возможно, на прокси.

Общие проблемы, с которыми я столкнулся:

  • Сертификат на сервере не подписан полномочием, доверяющим PROXY или CLIENT
  • Сертификат на КЛИЕНТ не подписан полномочным органом, которому доверяет PROXY или SERVER
  • К сожалению, я забыл экспортировать закрытый ключ, когда я создал сертификат, который будет установлен на клиенте
  • Мой процесс не имеет прав на чтение для закрытого ключа на клиенте
  • Сертификат клиента защищен паролем, и я не указывал учетные данные при чтении сертификата.

Ответ 2

У меня была такая же проблема. В моем случае сертификаты нуждаются в доступе к сети. Вы можете проверить

  • Открыть сертификат MMC
  • Перейдите к сертификатам (локальный компьютер) > Личные > Сертификаты
  • Щелкните правой кнопкой мыши свой сертификат и выберите "Все задачи" > "Управление секретными ключами"... из контекстного меню
  • Задайте соответствующее разрешение

Ответ 3

Если ваш сертификат не доверен (сам подписан), клиент С# откажется подключиться.