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

StackOverflow https://stackoverflow.com/questions/1600743

  •  05-07-2019
  •  | 
  •  

Вопрос

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

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

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

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

Спасибо

Это было полезно?

Решение

По моему опыту, почти все такие сообщения происходят из-за того, что какой-то компьютер в цепочке (клиент, прокси-сервер, сервер) по какой-то причине не «любит» сертификат.

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

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

  • Сертификат на сервере не подписан центром, которому доверяет ПРОКСИ или КЛИЕНТ.
  • Сертификат КЛИЕНТА не подписан органом, которому доверяет ПРОКСИ или СЕРВЕР.
  • К сожалению, я забыл экспортировать закрытый ключ, когда создавал сертификат для установки на клиенте.
  • У моего процесса нет прав на чтение закрытого ключа на клиенте.
  • Сертификат клиента защищен паролем, и я не указал учетные данные при чтении сертификата.

Другие советы

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

  1. Открытый сертификат ММС
  2. Перейдите в «Сертификаты (локальный компьютер)» > «Личные» > «Сертификаты».
  3. Щелкните правой кнопкой мыши свой сертификат и выберите «Все задачи» > «Управление закрытыми ключами…» в контекстном меню.
  4. Установите соответствующее разрешение

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top