【发布时间】:2021-04-06 01:19:13
【问题描述】:
我有一个关于 HTTPS/TLS 和 Java 8 或更高版本的简短问题。 想象一下以下设置:
Version 1:
URL myUrl = new URL("https://example.com/fileOfInterest");
URLConnection connection = myURL.openConnection();
InputStream iStream = connection.getInputStream();
此连接是默认加密的(包括受信任的 CA 的证书验证等)还是我必须遵循链接 here 暗示此配置的指南:
Version 2:
URL url = new URL("https://example.com/fileOfInterest");
HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
InputStream iStream = connections.getInputStream();
我有点困惑,因为第 2 版似乎对可能的 HTTPS 连接没有任何配置影响。
在默认情况下具有安全 HTTPS 连接的情况下,是否也禁止在无法通过 HTTPS 连接的情况下回退到不安全的 HTTP?还是我必须自己禁用它。
提前感谢您能澄清这种困惑,我只是不想冒安全漏洞的风险;)
【问题讨论】:
-
如果您提供 https URL,您将获得 https 连接,根据定义,无论您使用什么类进行类型转换。如果您使用 Java 未知的协议,则会收到异常。