Не удалось создать безопасный канал SSL/TLS. Может ли проблема быть прокси-сервером?
У меня есть приложение С#, которое вызывает метод веб-службы, который аутентифицируется с использованием сертификата.
Код работает, потому что когда он установлен на сервере A (без прокси), он аутентифицируется.
Когда я устанавливаю код на сервере B, на клиентском сайте, он устанавливается за прокси. Я действительно пробовал почти все, но я продолжаю получать эту ошибку:
Не удалось создать безопасный канал SSL/TLS
Считаете ли вы, что эта проблема может быть вызвана прокси-сервером? Если у вас был личный опыт, пожалуйста, поделитесь.
Спасибо
Ответы
Ответ 1
По моему опыту, почти все такие сообщения связаны с какой-то машиной в цепочке (клиент, прокси, сервер), по какой-то причине "не нравится" сертификат.
Чтобы уточнить, что сказал twk, если вы используете самозаверяющие сертификаты или собственный CA, вам необходимо установить сертификат подписи в хранилище доверенных ведомств на сервере, по крайней мере, и, возможно, на прокси.
Общие проблемы, с которыми я столкнулся:
- Сертификат на сервере не подписан полномочием, доверяющим PROXY или CLIENT
- Сертификат на КЛИЕНТ не подписан полномочным органом, которому доверяет PROXY или SERVER
- К сожалению, я забыл экспортировать закрытый ключ, когда я создал сертификат, который будет установлен на клиенте
- Мой процесс не имеет прав на чтение для закрытого ключа на клиенте
- Сертификат клиента защищен паролем, и я не указывал учетные данные при чтении сертификата.
Ответ 2
У меня была такая же проблема. В моем случае сертификаты нуждаются в доступе к сети. Вы можете проверить
- Открыть сертификат MMC
- Перейдите к сертификатам (локальный компьютер) > Личные > Сертификаты
- Щелкните правой кнопкой мыши свой сертификат и выберите "Все задачи" > "Управление секретными ключами"... из контекстного меню
- Задайте соответствующее разрешение
Ответ 3
Если ваш сертификат не доверен (сам подписан), клиент С# откажется подключиться.