不要感到惊讶,但我的问题不是关于不工作的东西:为什么 .Net WebClient 能够在没有任何配置的情况下使用 HTTPS 开箱即用?
我不会问我是否没有一些严肃的理由认为不应该是这种情况:确实,我使用 Apache HttpClient 执行完全相同的操作,通过 HTTPS 进行 POST,但它抱怨。
困扰 HttpClient 的是服务器 TLS 证书未知的事实。这是一个合法的投诉,所以我已将证书添加到我正在使用的 JRE 证书存储中,之后一切都按预期工作。
首先,您能否消除一个可怕的疑问:WebClient 正确使用 HTTPS,如果我尝试连接到“ https://downloadspywaresandmalwares.com ”,它应该会以“你疯了,这不是受信任的位置!”之类的内容拒绝我。 ?
所以我想这与 .Net 和 Java 不同的安全策略有关:也许 Java 与它自己的一组证书和权限捆绑在一起,而 .Net 与可能具有更大的可信证书集的操作系统更集成。
那么我如何检查所有这些假设呢?
如果它有任何重要性:我使用过 Chrome 中的网站,但从未使用过 IE,所以 WebClient 没有使用 IE 配置。
感谢您的任何意见。:)