【发布时间】:2014-01-07 23:03:45
【问题描述】:
我正在编写一个使用 SSL 与其他服务器通信的 Java 代理。 使用 ServerSocketFactory 以及使用服务器证书填充的密钥库和信任库,这一切都很好。
我想知道,Java 7 中有没有办法禁用认证并信任所有服务器? (是的,我知道这是有风险的 - 但代理仅供内部使用)
我已经看到了一些使用 X509TrustManager 实现来实现 TrustManager 的示例,尽管显然 Java 7 不支持这些合约并且 X509TrustManager 本身已被弃用。
感谢您的建议以及任何适用于 Java 7 的代码示例。
【问题讨论】:
-
如果您不希望它安全,为什么要使用 SSL?
-
X509TrustManager已弃用?你在哪里看到的?当然,有一个新的X509ExtendedTrustManager,但我不知道要弃用旧接口。这些空的信任管理器仍然适用于 Java 7(尽管使用它们很少是一个好主意......) -
您说得对,X509TrustManager 似乎有两种实现,一种在 javax.net.ssl 下,另一种(较旧)在 com.sun.net.ssl 下,已弃用
-
EJP,当您编写代理时,您会监控来自众多选择 HTTPS 的供应商的流量,您的问题是假设我们监控所有服务器,但事实并非如此
-
您并不是真的要直接使用任何
com.sun.*类。它们不是 Java 公共 API 的一部分。如果使用它们,则它们会被特定于您正在使用的 JRE 的各种提供程序在内部使用。
标签: java ssl ssl-certificate