Статус: Участник
Группы: Участники
Зарегистрирован: 31.01.2012(UTC) Сообщений: 17 Откуда: Москва
|
Добрый день! Пытаюсь подключиться к удаленному серверу следующим образом (код ниже). JCP, JTLS установлены, ошибка при инициализации SSLContext java.lang.NullPointerException, помогите пожалуйста, в чем проблема? Цитата: URL myurl; HttpsURLConnection connection = null; KeyStore ks = null; KeyStore kss = null;
//настройки для клиента System.setProperty("javax.net.ssl.trustStoreType", "HDImageStore"); System.setProperty("javax.net.ssl.trustStore","C:\\trust.store"); System.setProperty("javax.net.ssl.trustStorePassword", "111111"); try { ks = KeyStore.getInstance("HDImageStore", "JCP"); ks.load(new FileInputStream("C:\\trust.store"), "111111".toCharArray());
TrustManagerFactory tmf = null; tmf = TrustManagerFactory.getInstance("SunX509"); tmf.init(ks); TrustManager tms [] = tmf.getTrustManagers(); SecureRandom rnd = SecureRandom.getInstance("CPRandom", "JCP"); connection.setHostnameVerifier(new NullHostnameVerifier()); SSLContext sc = SSLContext.getInstance("TLS", "JCP"); sc.getDefault(); sc.init(null, tms, rnd); connection.setDefaultSSLSocketFactory(sc.getSocketFactory()); myurl = new URL(httpsURL); Reader reader; connection = (HttpsURLConnection)myurl.openConnection(); connection.setDoInput(true); connection.setDoOutput(true); //-------------------- connection.setRequestMethod("POST"); connection.setRequestProperty("Content-length", String.valueOf(request.getContentLength())); connection.setRequestProperty("Content-Type", request.getContentType());
DataOutputStream outs = new DataOutputStream(connection.getOutputStream()); logger.info("Send request..."); outs.writeChars(message); //-------------------- DataInputStream input = new DataInputStream(connection.getInputStream()); reader= new BufferedReader(new InputStreamReader(input, "windows-1251")); logger.info("Read response..."); readWriteStream(reader, out, "response"); connection.disconnect(); reader.close(); input.close(); outs.close(); }
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 31.01.2012(UTC) Сообщений: 17 Откуда: Москва
|
Извиняюсь проблема в этой строке Цитата:connection.setHostnameVerifier(new NullHostnameVerifier()); ,но если ее закоментировать, то получаю такое исключение Цитата:java.security.cert.CertificateException: No subject alternative names matching IP address {ip сервера} found
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 31.01.2012(UTC) Сообщений: 17 Откуда: Москва
|
Уточняю exception: Цитата:javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: No subject alternative names matching IP address {ip сервера} found т.е., как я понимаю, при у "пожатии" возникает... Отредактировано пользователем 3 февраля 2012 г. 17:09:15(UTC)
| Причина: Не указана
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 31.01.2012(UTC) Сообщений: 17 Откуда: Москва
|
С верификацие вроде разобрался, но теперь падает тут: Цитата:connection.setDefaultSSLSocketFactory(sc.getSocketFactory()); javax.net.ssl.SSLProtocolException: Server did not send a DH Server Key Exchange message
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 31.01.2012(UTC) Сообщений: 17 Откуда: Москва
|
Попробовал поменять инстанс для контекста: Цитата:SSLContext sc = SSLContext.getInstance("GostTLS"); теперь возникает такое исключение: Цитата:javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: Unknown authType: GOST3410DH кто-то сталкивался с этим?
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 11.10.2011(UTC) Сообщений: 26
Сказал(а) «Спасибо»: 2 раз
|
1 в 1 как у меня проблема, просветления уже неделю как нет.
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 31.01.2012(UTC) Сообщений: 17 Откуда: Москва
|
может вместе поборем...) поменял инстанс в TrustManager Цитата:tmf = TrustManagerFactory.getInstance("GostX509"); теперь такое получаю Цитата:javax.net.ssl.SSLException: java.lang.UnsupportedOperationException
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 31.01.2012(UTC) Сообщений: 17 Откуда: Москва
|
А не нужно ли для SSLContext какой-то КриптоПро инстанс указывать?
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 31.01.2012(UTC) Сообщений: 17 Откуда: Москва
|
вот полный трейс Цитата: javax.net.ssl.SSLException: java.lang.UnsupportedOperationException at ru.CryptoPro.ssl.K.a(Unknown Source) [cpSSL.jar:1.0.2391] at ru.CryptoPro.ssl.t.a(Unknown Source) [cpSSL.jar:1.0.2391] at ru.CryptoPro.ssl.t.a(Unknown Source) [cpSSL.jar:1.0.2391] at ru.CryptoPro.ssl.t.a(Unknown Source) [cpSSL.jar:1.0.2391] at ru.CryptoPro.ssl.t.startHandshake(Unknown Source) [cpSSL.jar:1.0.2391] at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:434) [:1.6] at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:166) [:1.6] at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:904) [:1.6.0_18] at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:230) [:1.6] at servlet.MessageServlet.httpsConnect(MessageServlet.java:122) [:] at servlet.MessageServlet.service(MessageServlet.java:253) [:] at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [:1.0.0.Beta2] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:324) [:6.0.0.20100911-M5] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242) [:6.0.0.20100911-M5] at org.jboss.resteasy.plugins.server.servlet.FilterDispatcher.doFilter(FilterDispatcher.java:63) [:6.0.0.20100911-M5] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:274) [:6.0.0.20100911-M5] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242) [:6.0.0.20100911-M5] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275) [:6.0.0.20100911-M5] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) [:6.0.0.20100911-M5] at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:181) [:6.0.0.20100911-M5] at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.event(CatalinaContext.java:285) [:1.1.0.CR3] at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.invoke(CatalinaContext.java:261) [:1.1.0.CR3] at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:88) [:6.0.0.20100911-M5] at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:100) [:6.0.0.20100911-M5] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) [:6.0.0.20100911-M5] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [:6.0.0.20100911-M5] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [:6.0.0.20100911-M5] at org.jboss.web.tomcat.service.request.ActiveRequestResponseCacheValve.invoke(ActiveRequestResponseCacheValve.java:53) [:6.0.0.20100911-M5] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:362) [:6.0.0.20100911-M5] at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877) [:6.0.0.20100911-M5] at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:653) [:6.0.0.20100911-M5] at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:951) [:6.0.0.20100911-M5] at java.lang.Thread.run(Thread.java:619) [:1.6.0_18] Caused by: java.lang.UnsupportedOperationException at javax.crypto.CipherSpi.engineGetKeySize(DashoA13*..) [:1.6] at javax.crypto.Cipher.b(DashoA13*..) [:1.6] at javax.crypto.Cipher.a(DashoA13*..) [:1.6] at javax.crypto.Cipher.a(DashoA13*..) [:1.6] at javax.crypto.Cipher.a(DashoA13*..) [:1.6] at javax.crypto.Cipher.init(DashoA13*..) [:1.6] at javax.crypto.Cipher.init(DashoA13*..) [:1.6] at ru.CryptoPro.ssl.a.d.a(Unknown Source) [cpSSL.jar:1.0.2391] at ru.CryptoPro.ssl.a.a.a(Unknown Source) [cpSSL.jar:1.0.2391] at ru.CryptoPro.ssl.a.a(Unknown Source) [cpSSL.jar:1.0.2391] at ru.CryptoPro.ssl.a.a(Unknown Source) [cpSSL.jar:1.0.2391] at ru.CryptoPro.ssl.L.a(Unknown Source) [cpSSL.jar:1.0.2391] at ru.CryptoPro.ssl.t.a(Unknown Source) [cpSSL.jar:1.0.2391] at ru.CryptoPro.ssl.t.i(Unknown Source) [cpSSL.jar:1.0.2391] ... 29 more такое ощущение, что лезет не в ту ветку и ломается там, т.к. что-то не риализовано... Отредактировано пользователем 3 февраля 2012 г. 20:07:48(UTC)
| Причина: Не указана
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 31.01.2012(UTC) Сообщений: 17 Откуда: Москва
|
Нашел похожие ошибки на форуме, импортировал политики безопасности с оф. сайта, теперь получаю вот такой трейс: Цитата:ru.CryptoPro.JCP.tools.SelfTesterException: URL is incorrect at ru.CryptoPro.JCP.tools.SelfTester.checkClass(Unknown Source) [JCP.jar:1.0.3099] at ru.CryptoPro.JCP.tools.z.a(Unknown Source) [JCP.jar:1.0.3099] at ru.CryptoPro.JCP.KeyStore.JCPKeyStore.engineLoad(Unknown Source) [JCP.jar:1.0.3099] at java.security.KeyStore.load(KeyStore.java:1185) [:1.6.0_18] at servlet.MessageServlet.httpsConnect(MessageServlet.java:95) [:] at servlet.MessageServlet.service(MessageServlet.java:253) [:] at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [:1.0.0.Beta2] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:324) [:6.0.0.20100911-M5] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242) [:6.0.0.20100911-M5] at org.jboss.resteasy.plugins.server.servlet.FilterDispatcher.doFilter(FilterDispatcher.java:63) [:6.0.0.20100911-M5] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:274) [:6.0.0.20100911-M5] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242) [:6.0.0.20100911-M5] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275) [:6.0.0.20100911-M5] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) [:6.0.0.20100911-M5] at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:181) [:6.0.0.20100911-M5] at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.event(CatalinaContext.java:285) [:1.1.0.CR3] at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.invoke(CatalinaContext.java:261) [:1.1.0.CR3] at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:88) [:6.0.0.20100911-M5] at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:100) [:6.0.0.20100911-M5] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) [:6.0.0.20100911-M5] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [:6.0.0.20100911-M5] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [:6.0.0.20100911-M5] at org.jboss.web.tomcat.service.request.ActiveRequestResponseCacheValve.invoke(ActiveRequestResponseCacheValve.java:53) [:6.0.0.20100911-M5] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:362) [:6.0.0.20100911-M5] at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877) [:6.0.0.20100911-M5] at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:653) [:6.0.0.20100911-M5] at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:951) [:6.0.0.20100911-M5] at java.lang.Thread.run(Thread.java:619) [:1.6.0_18] Caused by: java.lang.Exception: URL is incorrect ... 28 more
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close