1

我需要你的帮助一次。

我无法了解如何成功建立从 Metro 应用程序到不受信任的根证书主机的 StreamSocket 连接。
我是这样连接的:

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

它失败了:(

由于主机限制,我无法建立普通的 HTTP 连接。

有人说我需要制作一个代理服务器,它将 SSL 查询转发到那个不受信任的主机,并将这个连接标记为受信任的。
但是怎么做呢?我暂时不明白 :(
我在我的 CentOS 网络服务器上使用 Squid 并对 squid.conf 执行此操作:

acl TrustedHosts url_regex _UNTRUSTED_HOST_IP_ADDRESS_
sslproxy_cert_error allow TrustedHosts
sslproxy_cert_error deny all

我需要 StreamSocket,因为我必须从套接字读取和写入才能进行一些有价值的操作。

如果有人能帮我解决这个...

4

1 回答 1

3

我通过修改 StreamSocket 的控制来做到这一点:

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

ChainValidationResult 包含多个选项,请选择最适合您的选项。

于 2014-05-17T12:39:37.737 回答