Статус: Участник
Группы: Участники
Зарегистрирован: 13.12.2017(UTC) Сообщений: 13 Откуда: Россия
|
При попытке подписать сообщение на сервере вываливается ексепшн Код:
java.lang.NullPointerException
at ru.CryptoPro.CAdES.tools.verifier.GostContentSignerProvider.getAlgorithmIdentifier(Unknown Source)
at ru.CryptoPro.CAdES.tools.verifier.GostContentSignerProvider.<init😠Unknown Source)
at org.askog.security.EsiaLogin.login(EsiaLogin.java:96)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.el.parser.AstValue.invoke(AstValue.java:245)
at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:277)
at org.apache.myfaces.view.facelets.el.ContextAwareTagMethodExpression.invoke(ContextAwareTagMethodExpression.java:96)
at org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:74)
at org.primefaces.application.DialogActionListener.processAction(DialogActionListener.java:45)
at javax.faces.component.UICommand.broadcast(UICommand.java:120)
at javax.faces.component.UIViewRoot._broadcastAll(UIViewRoot.java:1174)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:365)
at javax.faces.component.UIViewRoot._process(UIViewRoot.java:1660)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:864)
at org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:42)
at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:196)
at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:143)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:198)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.askog.utils.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:20)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:506)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:537)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1081)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:658)
at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:222)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1566)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1523)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
Тот же самый код на локальной машине работает нормально. В чем может быть проблема?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,962 Откуда: Крипто-Про Сказал(а) «Спасибо»: 20 раз Поблагодарили: 704 раз в 665 постах
|
Сложно сказать. Может, закрытый ключ - null? |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 13.12.2017(UTC) Сообщений: 13 Откуда: Россия
|
Автор: afev Сложно сказать. Может, закрытый ключ - null? Да, действительно KeyStore возвращается пустым. Пробую на своей машине все работает. При переносе на сервер не видит ни одного закрытого ключа в хранилище, хотя они установлены в CSP. Код:Security.addProvider(new BouncyCastleProvider());
CAdESUtility.initJCPAlgorithms();
KeyStore keyStore = KeyStore.getInstance("HDImageStore");
keyStore.load(null, null);
KeyStore в этот момент пустой. В чем может быть проблема?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,962 Откуда: Крипто-Про Сказал(а) «Спасибо»: 20 раз Поблагодарили: 704 раз в 665 постах
|
Возможно, контейнеры отсутствуют в папке данного пользователя (C:\Users\<user>\AppData\Local\Crypto Pro или /var/opt/cprocsp/keys/<user>). JCP использует контейнеры из указанных папок, с CSP не связан. Отредактировано пользователем 26 февраля 2018 г. 11:18:59(UTC)
| Причина: Не указана |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 13.12.2017(UTC) Сообщений: 13 Откуда: Россия
|
Автор: afev Возможно, контейнеры отсутствуют в папке данного пользователя (C:\Users\<user>\AppData\Local\Crypto Pro или /var/opt/cprocsp/keys/<user>). JCP использует контейнеры из указанных папок, с CSP не связан. То есть если я правильно понял для доступа JCP к ключам и личным сертификатам не обязательно их устанавливать в CSP? И попытка получения сертификата Код:X509Certificate cert = (X509Certificate) keyStore.getCertificate(alias);
тоже получит сертификат путем обращения к папке /var/opt/cprocsp/keys/<user>? И нужно ли для получения сертификата делать еще какие то действия, потому что сертификат возвращает null даже после того, как я поместил все закрытые ключи в папку /var/opt/cprocsp/keys/<user>.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,962 Откуда: Крипто-Про Сказал(а) «Спасибо»: 20 раз Поблагодарили: 704 раз в 665 постах
|
Автор: r-u-s-s-k-i-y То есть если я правильно понял для доступа JCP к ключам и личным сертификатам не обязательно их устанавливать в CSP?
Да, необязательно. Автор: r-u-s-s-k-i-y И попытка получения сертификата Код:X509Certificate cert = (X509Certificate) keyStore.getCertificate(alias);
тоже получит сертификат путем обращения к папке /var/opt/cprocsp/keys/<user>? Да, именно так. Сертификат будет извлечен из контейнера. Автор: r-u-s-s-k-i-y И нужно ли для получения сертификата делать еще какие то действия, потому что сертификат возвращает null даже после того, как я поместил все закрытые ключи в папку /var/opt/cprocsp/keys/<user>.
Если сертификат установлен в контейнер, то его можно получить с помощью getCertificate()/getCertificateChain() (он будет считан из файла header.key в папке контейнера). Если getCertificate() возвращает null, то, возможно, сертификат не был установлен в контейнер. |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 13.12.2017(UTC) Сообщений: 13 Откуда: Россия
|
Автор: afev Автор: r-u-s-s-k-i-y То есть если я правильно понял для доступа JCP к ключам и личным сертификатам не обязательно их устанавливать в CSP?
Да, необязательно. Автор: r-u-s-s-k-i-y И попытка получения сертификата Код:X509Certificate cert = (X509Certificate) keyStore.getCertificate(alias);
тоже получит сертификат путем обращения к папке /var/opt/cprocsp/keys/<user>? Да, именно так. Сертификат будет извлечен из контейнера. Автор: r-u-s-s-k-i-y И нужно ли для получения сертификата делать еще какие то действия, потому что сертификат возвращает null даже после того, как я поместил все закрытые ключи в папку /var/opt/cprocsp/keys/<user>.
Если сертификат установлен в контейнер, то его можно получить с помощью getCertificate()/getCertificateChain() (он будет считан из файла header.key в папке контейнера). Если getCertificate() возвращает null, то, возможно, сертификат не был установлен в контейнер. Спасибо, ключ и сертификат извлекаются, но теперь на сервер стал валиться эксепшн Код:No X11 DISPLAY variable was set, but this program performed an operation which requires it.; error codes: [-2] 'Application error',
at ru.CryptoPro.CAdES.tools.verifier.GostContentSignerProvider.<init>(Unknown Source)
at org.askog.security.EsiaLogin.login(EsiaLogin.java:100)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.el.parser.AstValue.invoke(AstValue.java:245)
at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:277)
at org.apache.myfaces.view.facelets.el.ContextAwareTagMethodExpression.invoke(ContextAwareTagMethodExpression.java:96)
at org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:74)
at org.primefaces.application.DialogActionListener.processAction(DialogActionListener.java:45)
at javax.faces.component.UICommand.broadcast(UICommand.java:120)
at javax.faces.component.UIViewRoot._broadcastAll(UIViewRoot.java:1174)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:365)
at javax.faces.component.UIViewRoot._process(UIViewRoot.java:1660)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:864)
at org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:42)
at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:196)
at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:143)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:198)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.askog.utils.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:20)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:506)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:537)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1081)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:658)
at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:222)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1566)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1523)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.bouncycastle.operator.OperatorCreationException:
No X11 DISPLAY variable was set, but this program performed an operation which requires it.
at ru.CryptoPro.CAdES.tools.verifier.SignatureOutputStream.<init>(Unknown Source)
... 45 more
Caused by: java.awt.HeadlessException:
No X11 DISPLAY variable was set, but this program performed an operation which requires it.
at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:204)
at java.awt.Window.<init>(Window.java:536)
at java.awt.Frame.<init>(Frame.java:420)
at java.awt.Frame.<init>(Frame.java:385)
at javax.swing.JFrame.<init>(JFrame.java:189)
at ru.CryptoPro.JCP.tools.N.<init>(Unknown Source)
at ru.CryptoPro.JCP.tools.Gost2001Warning.warn(Unknown Source)
at ru.CryptoPro.JCP.Sign.c.engineInitSign(Unknown Source)
at java.security.Signature.initSign(Signature.java:527)
... 46 more
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,962 Откуда: Крипто-Про Сказал(а) «Спасибо»: 20 раз Поблагодарили: 704 раз в 665 постах
|
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close