0

我正在使用 HttpClient 4 来获取 https URL。服务器具有有效的证书,实际上从 chrome 访问相同的 https url 工作正常,没有警告。

但是,从 java 代码中,在执行时,我得到:

javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated
    at com.sun.net.ssl.internal.ssl.SSLSessionImpl.getPeerCertificates(SSLSessionImpl.java:352)

相同的代码适用于一个 https 链接,而不适用于另一个。我可以看到工作证书和非工作证书之间的主要区别如下:

工作的使用RC4_128

抛出异常的使用 CAMELLIA 256 CBC

然后我发现Java不支持Camellia。请参阅http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6537034http://en.wikipedia.org/wiki/Comparison_of_TLS_Implementations#Encryption_Algorithms

如何才能将此支持添加到我的 HttpClient 代码中?

我添加了 BouncyCastle 库和安全提供程序

static {
    Security.addProvider(new BouncyCastleProvider());
}

据说这增加了对 Camellia 的支持。

但仍然没有运气。

4

0 回答 0