Статус: Новичок
Группы: Участники
Зарегистрирован: 30.11.2016(UTC) Сообщений: 3 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Откуда: Киров
|
Добрый день. Помогите пожалуйста с проблемой. Я установил по инструкции jcp и jstl (наличие установленных файлов проверял). И такой код (максимально приближенный к примеру): Код:System.setProperty("javax.net.debug", "ssl,handshake,data,trustmanager");
System.setProperty("com.sun.security.enableCRLDP", "true");
System.setProperty("com.ibm.security.enableCRLDP", "true");
System.setProperty("javax.net.ssl.keyStoreProvider", "JCP");
System.setProperty("javax.net.ssl.trustStoreType", "HDImageStore");
System.setProperty("javax.net.ssl.keyStoreType", "HDImageStore");
System.setProperty("javax.net.ssl.keyStorePassword", "11111");
System.setProperty("javax.net.ssl.trustStore", "D:\\icrsCacer.store");
System.setProperty("javax.net.ssl.trustStorePassword", "11111");
URL url = new URL("https://icrs.nbki.ru/signals/list");
System.setProperty("https.proxyHost","192.168.xxx.xxx");
System.setProperty("https.proxyPort","xxxx");
HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
connection.connect();
print_content(connection);
connection.disconnect();
даёт вот такой результат Код:
setting up default SSLSocketFactory
class ru.CryptoPro.ssl.SSLSocketFactoryImpl is loaded
ноя 30, 2016 2:36:34 AM ru.CryptoPro.ssl.SSLContextImpl d
INFO: keyStore is :
ноя 30, 2016 2:36:34 AM ru.CryptoPro.ssl.SSLContextImpl d
INFO: keyStore type is : HDImageStore
ноя 30, 2016 2:36:34 AM ru.CryptoPro.ssl.SSLContextImpl d
INFO: keyStore provider is : JCP
ноя 30, 2016 2:36:34 AM ru.CryptoPro.ssl.SSLContextImpl d
INFO: init keystore
ноя 30, 2016 2:36:34 AM ru.CryptoPro.ssl.SSLContextImpl d
INFO: defaultStoreProvider =
ноя 30, 2016 2:36:34 AM ru.CryptoPro.ssl.SSLContextImpl d
INFO: JCP
ноя 30, 2016 2:36:35 AM ru.CryptoPro.JCP.tools.Starter check
INFO: Loading JCP 1.0.54 36641
ноя 30, 2016 2:36:35 AM ru.CryptoPro.JCP.tools.Starter check
INFO: JCP loaded.
ноя 30, 2016 2:36:35 AM ru.CryptoPro.ssl.SSLContextImpl d
INFO: init keymanager of type GostX509
ноя 30, 2016 2:36:55 AM ru.CryptoPro.ssl.SSLContextImpl d
INFO: trustStore is: D:\icrsCacer.store
ноя 30, 2016 2:36:55 AM ru.CryptoPro.ssl.SSLContextImpl d
INFO: trustStore type is : HDImageStore
ноя 30, 2016 2:36:55 AM ru.CryptoPro.ssl.SSLContextImpl d
INFO: trustStore provider is :
ноя 30, 2016 2:36:55 AM ru.CryptoPro.ssl.SSLContextImpl d
INFO: init truststore
ноя 30, 2016 2:36:58 AM ru.CryptoPro.ssl.SSLContextImpl d
INFO: init trustmanager of type GostX509
ноя 30, 2016 2:36:59 AM ru.CryptoPro.ssl.SSLContextImpl d
INFO: init context...
instantiated an instance of class ru.CryptoPro.ssl.SSLSocketFactoryImpl
ноя 30, 2016 2:37:00 AM ru.CryptoPro.ssl.SSLContextImpl d
INFO: Context inited.
javax.net.ssl.SSLException: java.lang.UnsupportedOperationException
at ru.CryptoPro.ssl.x.a(Unknown Source)
at ru.CryptoPro.ssl.ae.a(Unknown Source)
at ru.CryptoPro.ssl.ae.a(Unknown Source)
at ru.CryptoPro.ssl.ae.a(Unknown Source)
at ru.CryptoPro.ssl.ae.startHandshake(Unknown Source)
at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:515)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:153)
at ru.vtkbank.signals.XmlCreator.sendDoc(XmlCreator.java:169)
at ru.vtkbank.signals.XmlCreator.createUpdateSignalXml(XmlCreator.java:105)
at ru.vtkbank.signals.UpdateSignalFileCreator.createUpdateFile(UpdateSignalFileCreator.java:54)
at ru.vtkbank.signals.KuSignals.main(KuSignals.java:29)
Caused by: java.lang.UnsupportedOperationException
at javax.crypto.CipherSpi.engineGetKeySize(CipherSpi.java:926)
at javax.crypto.Cipher.passCryptoPermCheck(Cipher.java:1052)
at javax.crypto.Cipher.checkCryptoPerm(Cipher.java:1010)
at javax.crypto.Cipher.init(Cipher.java:1209)
at javax.crypto.Cipher.init(Cipher.java:1153)
at ru.CryptoPro.ssl.a.c.a(Unknown Source)
at ru.CryptoPro.ssl.a.e.a(Unknown Source)
at ru.CryptoPro.ssl.ag.a(Unknown Source)
at ru.CryptoPro.ssl.ag.a(Unknown Source)
at ru.CryptoPro.ssl.d.k(Unknown Source)
at ru.CryptoPro.ssl.d.a(Unknown Source)
at ru.CryptoPro.ssl.ae.a(Unknown Source)
at ru.CryptoPro.ssl.ae.i(Unknown Source)
... 8 more
Порывшись на форуме, делал следующее: 1. Снимал ограничение на экспорт JVM. 2. java.security проверял - там порядок. 3. Сертификаты и хранилище в порядке. Через JCP control panel я свободно захожу и вижу свои сертификаты. И даже получается построить цепочку там от личного сертификата в ключевом контейнере на носителе до доверенного сертификата в хранилище сертификатов. В IE по этой цепочке авторизация проходит нормально. jcp 1.0.54. JVM 1.7 Было некоторое подозрение по поводу прокси, но без прокси проверить нет возможности. Кроме того, похоже, что ssl сессия открывается. Пробовал выполнять примеры из samples, но они натыкаются на ту же самую ошибку. Пробовал через org.apache.httpclient (по примеру из samples) и получал ошибку: Код:
ноя 30, 2016 3:19:27 AM ru.CryptoPro.JCP.tools.Starter check
INFO: Loading JCP 1.0.54 36641
ноя 30, 2016 3:19:28 AM ru.CryptoPro.JCP.tools.Starter check
INFO: JCP loaded.
javax.net.ssl.SSLException: Server selected improper ciphersuite TLS_DH_RSA_WITH_AES_128_CBC_SHA
at sun.security.ssl.Alerts.getSSLException(Alerts.java:208)
at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1886)
at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:276)
at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:266)
at sun.security.ssl.ClientHandshaker.serverHello(ClientHandshaker.java:464)
at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:143)
at sun.security.ssl.Handshaker.processLoop(Handshaker.java:868)
at sun.security.ssl.Handshaker.process_record(Handshaker.java:804)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1016)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1312)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1339)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1323)
at org.apache.http.conn.ssl.SSLConnectionSocketFactory.createLayeredSocket(SSLConnectionSocketFactory.java:394)
at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.upgrade(DefaultHttpClientConnectionOperator.java:192)
at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.upgrade(PoolingHttpClientConnectionManager.java:369)
at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:415)
at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236)
at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184)
at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:88)
at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:107)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:55)
То есть SSLSocketImpl почему-то берётся от sun.security. Что я делаю не так? Подскажите, пожалуйста, куда копать. Отредактировано пользователем 30 ноября 2016 г. 17:03:32(UTC)
| Причина: Не указана
|