【发布时间】:2015-11-22 12:00:11
【问题描述】:
我有一个通过 HTTPS 连接到服务器的应用程序。 有问题的服务器有一个使用 RC4 密码的弱证书(最近从 JDK https://www.java.com/en/download/faq/release_changes.xml 中删除了默认支持) 所以在升级 JDK 之后,我看到 javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
发行说明指定您应该使用 SSLSocket/SSLEngine.setEnabledCipherSuites() 专门启用某些密码。
但是,使用 HttpsUrlConnection 或 Apache 的 CloseableHttpClient,我只能找到如何指定 SslSocketFactory。这似乎没有提供功能 .setEnabledCipherSuites。
找到这个帖子:Why does SSLSocketFactory lack setEnabledCipherSuites?
我的问题是: 有没有办法在出站客户端 HTTP 请求中获取 SSLEngine/Socket,以便我可以在握手之前设置密码套件?
提前致谢。
【问题讨论】:
-
你有没有找到解决这个问题的方法?我也面临同样的问题。
-
嗨,我也面临同样的问题。你找到解决办法了吗?
标签: java ssl httpurlconnection