gpt4 book ai didi

java - 为什么 .Net WebClient 无需任何配置就可以使用 HTTPS 而 Java HttpClient 不能

转载 作者:行者123 更新时间:2023-11-30 11:31:57 25 4
gpt4 key购买 nike

不要感到惊讶,但我的问题不是关于无法正常工作的问题:为什么 .Net WebClient 无需任何配置即可开箱即用地使用 HTTPS?

我不会问我是否有一些严肃的理由认为它不应该是这种情况:事实上我已经使用 Apache HttpClient 执行完全相同的操作,通过 HTTPS 的 POST,但它提示。

困扰 HttpClient 的是服务器 TLS 证书未知。这是一个合理的投诉,因此我已将该证书添加到我使用的 JRE 证书存储中,之后一切都按预期工作。

首先,您能否消除一个可怕的疑虑:WebClient 正确使用 HTTPS,如果我尝试连接到“https://downloadspywaresandmalwares.com”,它应该会拒绝我,并说“你是不是疯了,伙计,这不是一个受信任的位置!”?

所以我猜这与 .Net 和 Java 的不同安全策略有关:也许 Java 与它自己的一组证书和权限捆绑在一起,而 .Net 与操作系统集成得更多,操作系统可能具有更大的可信集合证书。

那么我怎样才能检查所有这些假设呢?

如果它有任何重要性:我使用过 Chrome 中的网站,但从未使用过 IE,所以 WebClient 没有使用 IE 配置。

感谢任何输入。 :)

最佳答案

好吧,我想我终于明白了:

  • 正如我所怀疑的那样.Net 没有自己的证书存储,而是使用操作系统存储
  • 我已经设法找到并删除证书,但这并不容易,因为 Windows 正在努力在其存储中维护一些证书
  • 一旦删除,正如预期的那样,WebClient 就会崩溃并提示,因为它“无法为 SSL/TLS 安全通道建立信任关系
  • 是的,WebClient 正确使用了 SSL,这让我松了一口气 :)

希望这些信息对其他人有用...

关于java - 为什么 .Net WebClient 无需任何配置就可以使用 HTTPS 而 Java HttpClient 不能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16922752/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com