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 содержит несколько вариантов, выберите наиболее подходящий для вас.