Добавление поддержки для Camellia Encryption в Java и HttpClient - PullRequest
0 голосов
/ 03 ноября 2011

Я использую HttpClient 4 для получения https URL. Сервер имеет действительные сертификаты, и на самом деле доступ к тому же URL-адресу https из Chrome работает нормально, без предупреждений.

Однако из кода 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 не поддерживает Камелию. см http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6537034 и http://en.wikipedia.org/wiki/Comparison_of_TLS_Implementations#Encryption_Algorithms

Как я могу добавить эту поддержку в мой код HttpClient?

Я добавил библиотеку BouncyCastle и провайдера безопасности

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

Предположительно добавлена ​​поддержка Камелии.

Но все равно не повезло.

...