Статус: Активный участник
Группы: Участники
Зарегистрирован: 15.05.2019(UTC) Сообщений: 33
|
Добрый день
при старте видно что SSLContextImpl инициализируется
мая 20, 2019 9:57:13 AM ru.CryptoPro.ssl.SSLContextImpl engineInit INFO: trigger seeding of SecureRandom 2019-05-20 09:57:13.296 INFO 10248 --- [ main] ru.CryptoPro.ssl.SSLLogger : trigger seeding of SecureRandom мая 20, 2019 9:57:13 AM ru.CryptoPro.ssl.SSLContextImpl engineInit INFO: done seeding SecureRandom 2019-05-20 09:57:13.297 INFO 10248 --- [ main] ru.CryptoPro.ssl.SSLLogger : done seeding SecureRandom 2019-05-20 09:57:13.297 INFO 10248 --- [ main] ru.CryptoPro.ssl.SSLLogger : SSLContextImpl initialized. мая 20, 2019 9:57:13 AM ru.CryptoPro.ssl.SSLContextImpl engineInit INFO: SSLContextImpl initialized. мая 20, 2019 9:57:13 AM ru.CryptoPro.ssl.cl_96 <init> FINE: %% Initialized: [Session-1, SSL_NULL_WITH_NULL_NULL] 2019-05-20 09:57:13.331 INFO 10248 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat] 2019-05-20 09:57:13.331 INFO 10248 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.17] 2019-05-20 09:57:13.500 INFO 10248 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext 2019-05-20 09:57:13.501 INFO 10248 --- [ main] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 3239 ms мая 20, 2019 9:57:13 AM ru.CryptoPro.ssl.cl_97 close FINE: Finalizer called close() мая 20, 2019 9:57:13 AM ru.CryptoPro.ssl.cl_97 d FINE: Finalizer, called closeInternal(true) мая 20, 2019 9:57:13 AM ru.CryptoPro.ssl.cl_97 c FINE: Finalizer , called closeSocket(selfInitiated) 2019-05-20 09:57:14.053 INFO 10248 --- [ main] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor' 2019-05-20 09:57:14.282 INFO 10248 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8000 (http) 8002 (https) with context path '' 2019-05-20 09:57:14.285 INFO 10248 --- [ main] ru.ksbsoft.server.ApplicationKt : Started ApplicationKt in 4.568 seconds (JVM running for 5.136)
при обращении показывает ошибку SSLContextImpl is not initialized
2019-05-20 10:03:12.078 ERROR 10248 --- [nio-8002-exec-1] org.apache.tomcat.util.net.NioEndpoint : Error running socket processor
java.lang.IllegalStateException: SSLContextImpl is not initialized at ru.CryptoPro.ssl.SSLContextImpl.engineCreateSSLEngine(Unknown Source) ~[cpSSL.jar:40035] at javax.net.ssl.SSLContext.createSSLEngine(SSLContext.java:329) ~[na:1.8.0_211] at ru.CryptoPro.ssl.tomcat.jsse.JCPSSLContext.createSSLEngine(JCPSSLContext.java:35) ~[JCPTomcatAdapter-1.0-SNAPSHOT.jar:na] at org.apache.tomcat.util.net.AbstractJsseEndpoint.createSSLEngine(AbstractJsseEndpoint.java:119) ~[tomcat-embed-core-9.0.17.jar:9.0.17] at org.apache.tomcat.util.net.SecureNioChannel.processSNI(SecureNioChannel.java:329) ~[tomcat-embed-core-9.0.17.jar:9.0.17] at org.apache.tomcat.util.net.SecureNioChannel.handshake(SecureNioChannel.java:175) ~[tomcat-embed-core-9.0.17.jar:9.0.17] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1392) ~[tomcat-embed-core-9.0.17.jar:9.0.17] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-embed-core-9.0.17.jar:9.0.17] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_211] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_211] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-9.0.17.jar:9.0.17] at java.lang.Thread.run(Thread.java:748) [na:1.8.0_211]
подскажите в какую сторону копать?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,006  Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 715 раз в 675 постах
|
Нужно 1) включить логирование для SSLLogger с уровнем ALL (описано в портале техподдержки, раздел JCP). Может, выведется что-то еще. 2) В отладке посмотреть в JCPTomcatAdapter (он все-таки больше предназначался для коннектора), какие параметры используются для создания контекста. P.S. Несколько инициализаций, скорее всего, как обычно - та, что создается вами + какая-то по умолчанию (SSLContext.getDefault() где-то в коде tomcat). Отредактировано пользователем 20 мая 2019 г. 10:20:13(UTC)
| Причина: Не указана |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 15.05.2019(UTC) Сообщений: 33
|
Во время создания контекста ssl у tomcat createSSLContext видим что при получении sslUtil в нашем случае это JCPJSSEUtil создается контекст JCPJSSEUtil.class:82 Код:context = new JCPSSLContext("GostTLS");
context.init((KeyManager[])null, (TrustManager[])null, (SecureRandom)null);
у которого contextSpi правильно инициализирован, так как при инициализации в SSLContextImpl для переменной d выставляется true Код:SSLLogger.trace("SSLContextImpl initialized.");
this.d = true;
что и наблюдаем после инициализации контекста d=trueдальше вызывается sslUtil.createSSLContext в нашем случае JCPJSSEUtil.createSSLContext в котором уже this.d = false то есть после вызова createSSLContext контекст не проинициализирован. почему в static создается и инициализируется JCPSSLContext а в createSSLContext только создается, не инициализируется Отредактировано пользователем 20 мая 2019 г. 11:37:09(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,006  Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 715 раз в 675 постах
|
context.init((KeyManager[])null, (TrustManager[])null, (SecureRandom)null); - действительно такая строка? Нет ни одного менеджера? Они должны быть, как минимум, TrustManager. |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 15.05.2019(UTC) Сообщений: 33
|
Автор: Евгений Афанасьев  context.init((KeyManager[])null, (TrustManager[])null, (SecureRandom)null); - действительно такая строка? Нет ни одного менеджера? Они должны быть, как минимум, TrustManager. это в коде так. в файле JCPJSSEUtil.java в блоке static
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,006  Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 715 раз в 675 постах
|
Если не ошибаюсь, в static блоке происходит сбор информации. Нужно посмотреть остальные классы вроде JCPSSLUtilBase, где есть какие-то проверки, и JCPSSLContext, где создается контекст. |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 15.05.2019(UTC) Сообщений: 33
|
Автор: Евгений Афанасьев  Если не ошибаюсь, в static блоке происходит сбор информации. Нужно посмотреть остальные классы вроде JCPSSLUtilBase, где есть какие-то проверки, и JCPSSLContext, где создается контекст. да в JCPJSSEUtil в блоке статик создается JCPSSLContext и явно для него вызывается init вот кусок кода Код:
JCPSSLContext context;
try {
context = new JCPSSLContext("GostTLS");
context.init((KeyManager[])null, (TrustManager[])null, (SecureRandom)null);
} catch (NoSuchAlgorithmException var19) {
throw new IllegalArgumentException(var19);
} catch (KeyManagementException var20) {
throw new IllegalArgumentException(var20);
}
но там же JCPJSSEUtil при вызове createSSLContext создается новый контекст без явного вызова init. вот кусок Код:
public SSLContext createSSLContext(List<String> negotiableProtocols) throws Exception {
return new JCPSSLContext(this.sslHostConfig.getSslProtocol());
}
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,006  Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 715 раз в 675 постах
|
У него есть init в JCPSSLContext, который, вероятно, позовется позднее. |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 15.05.2019(UTC) Сообщений: 33
|
Автор: Евгений Афанасьев  У него есть init в JCPSSLContext, который, вероятно, позовется позднее. нет. не вызывается. только в блоке ststic
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,006  Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 715 раз в 675 постах
|
А new JCPSSLContext из вышеуказанного метода вызывается? После него ошибок нет, просто init не зовется даже после попыток подключений? |
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close