Попробую подробнее описать проблему.
Написал простенький класс:
Код:
package ru.xxx.test;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.BasicResponseHandler;
import org.apache.http.impl.client.DefaultHttpClient;
public class TestApp {
public static void main(String[] args) throws Exception {
String url = "https://t-sms.ru/";
HttpGet get = new HttpGet(url);
BasicResponseHandler handler = new BasicResponseHandler();
new DefaultHttpClient().execute(get, handler);
}
}
При запуске класса подключаю все либы биллинга версии 6.0 build 1862 и в параметры прописываю -Djavax.net.debug=all
После запуска в логах такое:
Код:
*** Diffie-Hellman ServerKeyExchange
DH Modulus: { ... }
DH Base: { 2 }
Server DH Public Key: { ... }
Anonymous
main, handling exception: java.lang.RuntimeException: Could not generate DH keypair
main, SEND TLSv1 ALERT: fatal, description = internal_error
main, WRITE: TLSv1 Alert, length = 2
[Raw write]: length = 7
0000: 15 03 01 00 02 02 50 ......P
main, called closeSocket()
main, IOException in getSession(): javax.net.ssl.SSLException: java.lang.RuntimeException: Could not generate DH keypair
main, called close()
main, called closeInternal(true)
main, called close()
main, called closeInternal(true)
Exception in thread "main" javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated
at com.sun.net.ssl.internal.ssl.SSLSessionImpl.getPeerCertificates(SSLSessionImpl.java:352)
at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:128)
at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:572)
at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:180)
at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:294)
at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:640)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:479)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:1066)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:1044)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:1035)
at ru.joxnet.test.TestApp.main(TestApp.java:36)
Куда копать - пока не знаю. В ТП t-sms пока ничего не ответили, по ошибке "peer not authenticated" ничего внятного гугл не находит - это слишком общая ошибка, по ошибке "Could not generate DH keypair" гугл находит популярную проблему, но ко мне она, вроде, не сильно подходит. На java 1.7 всё прекрасно работает, но переводить биллинг на 1.7 совсем не хочется. Ещё пробовал добавить сертификат сайта и корневой сертификат в cacerts - тоже не помогает, хотя другим сайтам с левыми сертификатами это помогало.
Тупняк длится уже несколько часов
...