C#, Metro, Stream Socket, SSL-ненадежный хост, Squid

Мне нужна твоя помощь еще раз.

Я не могу понять, как успешно установить соединение StreamSocket из приложения Metro с ненадежным узлом корневого сертификата.
Я подключаюсь так:

await socket.ConnectAsync(new HostName("_UNTRUSTED_HOST_IP_ADDRESS_"), "_SSL_PORT_", SocketProtectionLevel.Ssl);

И это не удается:(

Я не могу установить простое соединение HTTP из-за ограничения хоста.

Некоторые говорят, что мне нужно создать прокси-сервер, который будет пересылать запросы SSL на этот ненадежный хост и который будет отмечать это соединение как надежное.
Но как это сделать? Я не получил это сейчас:(
Я использую Squid на своем веб-сервере CentOS и сделал это с squid.conf:

acl TrustedHosts url_regex _UNTRUSTED_HOST_IP_ADDRESS_
sslproxy_cert_error allow TrustedHosts
sslproxy_cert_error deny all

Мне нужен StreamSocket, потому что я должен читать и писать из сокета, чтобы сделать некоторые ценные действия.

Если кто-нибудь может помочь мне с этим...

1 ответ

Решение

Я сделал это, изменив таким образом элемент управления StreamSocket:

_streamSocket.Control.IgnorableServerCertificateErrors.Add(ChainValidationResult.Untrusted);
_streamSocket.Control.IgnorableServerCertificateErrors.Add(ChainValidationResult.InvalidName);

ChainValidationResult содержит несколько вариантов, выберите наиболее подходящий для вас.

Другие вопросы по тегам