Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline jrc834  
#1 Оставлено : 10 мая 2023 г. 12:11:13(UTC)
jrc834

Статус: Новичок

Группы: Участники
Зарегистрирован: 05.05.2023(UTC)
Сообщений: 8

Сказал(а) «Спасибо»: 2 раз
Добрый день.
Пытаюсь подключиться к сервисному концентратору fedsfm, выполнить тестовый метод /test-contur/authenticate.
В certstore лежит корневой сертификат минцифры, промежуточный сертификат казначейства и собственно сертификат самого fedsfm
В HdImage соответственно вся цепочка
Alias name: pfx-681c1601-5496-09f0-7949-737729e65735
Creation date: 5 мая 2023 г.
Entry type: PrivateKeyEntry
Certificate chain length: 3
Certificate[1]:
Owner: CN=<HIDDEN>
OID.1.2.643.100.3=#120B3134363432363336313632, OID.1.2.643.3.131.1.1=#120C333630343037333531303730, OID.1.2.643.100.4=#120A37373330303539353932
Certificate[2]:
Owner: CN="АО \"ПФ \"СКБ Контур\"", O="АО \"ПФ \"СКБ Контур\"", OU=Удостоверяющий центр, STREET="улица Народной воли, строение 19А", L=Екатеринбург, ST=66 Свердловская область, C=RU, OID.1.2.643.3.131.1.1=#120C303036363633303033313237, OID.1.2.643.100.1=#120D31303236363035363036363230, EMAILADDRESS=ca@skbkontur.ru
Certificate[3]:
Owner: CN=Минкомсвязь России, OID.1.2.643.3.131.1.1=#120C303037373130343734333735, OID.1.2.643.100.1=#120D31303437373032303236373031, O=Минкомсвязь России, STREET="улица Тверская, дом 7", L=г. Москва, ST=77 Москва, C=RU, EMAILADDRESS=dit@minsvyaz.ru

Соединение не устанавливается из-за ошибки

Цитата:
[2023-05-10 11:46:46] [FINE ] Make certificate verify.
[2023-05-10 11:46:46] [CONFIG ] User Preference Node: /ru/CryptoPro/ssl.tls_prohibit_disabled_validation=true
[2023-05-10 11:46:46] [FINER ] ENTRY
[2023-05-10 11:46:46] [FINER ] RETURN
[2023-05-10 11:46:46] [FINER ] ENTRY
[2023-05-10 11:46:46] [WARNING] ERROR
[2023-05-10 11:46:46] [FINER ] [main] :: CryptDestroyKey(2426430102192, 2426430244464)...
[2023-05-10 11:46:46] [FINER ] [main] :: CryptReleaseContext(2426430102192, 0) [for key]...
[2023-05-10 11:46:46] [FINE ] %% Invalidated: {0} [Session-1, TLS_CIPHER_2012]
[2023-05-10 11:46:46] [FINE ] %% Invalidated: {0} [Session-2, TLS_CIPHER_2012]
[2023-05-10 11:46:46] [FINE ] main, SEND TLSv1.2 ALERT: fatal, description = handshake_failure
[2023-05-10 11:46:46] [FINER ] ENTRY
[2023-05-10 11:46:46] [FINER ] RETURN
[2023-05-10 11:46:46] [FINE ] MAC computed: 9B DF 19 C2
[2023-05-10 11:46:46] [FINE ] Begin encrypt...
[2023-05-10 11:46:46] [ALL ] Plaintext before ENCRYPTION: len = 6
0000: 02 28 9B DF 19 C2 .(....

[2023-05-10 11:46:46] [FINE ] Encrypted...
[2023-05-10 11:46:46] [ALL ] [Raw write]: length = 11
0000: 15 03 03 00 06 61 4B 44 15 60 18 .....aKD.`.

[2023-05-10 11:46:46] [FINE ] main called closeSocket()
[2023-05-10 11:46:46] [FINER ] ENTRY
[2023-05-10 11:46:46] [FINER ] ENTRY
[2023-05-10 11:46:46] [FINER ] RETURN
[2023-05-10 11:46:46] [FINER ] RETURN
[2023-05-10 11:46:46] [FINER ] ENTRY
[2023-05-10 11:46:46] [FINER ] ENTRY
[2023-05-10 11:46:46] [FINER ] RETURN
[2023-05-10 11:46:46] [FINER ] RETURN
[2023-05-10 11:46:46] [WARNING] main, handling exception: javax.net.ssl.SSLHandshakeException: Error signing certificate verify
[2023-05-10 11:46:46] [FINE ] http-outgoing-0 << "[read] I/O error: Error signing certificate verify"
[2023-05-10 11:46:46] [FINE ] http-outgoing-0: Close connection
[2023-05-10 11:46:46] [FINE ] main called close()
[2023-05-10 11:46:46] [FINE ] main, called closeInternal(true)
[2023-05-10 11:46:46] [FINE ] http-outgoing-0: Shutdown connection
[2023-05-10 11:46:46] [FINE ] Connection discarded
[2023-05-10 11:46:46] [FINE ] Connection released: [id: 0][route: {s}->https://portal.fedsfm.ru:8081][total available: 0; route allocated: 0 of 2; total allocated: 0 of 20]


Java trace:
Цитата:

[2023-05-10 11:46:46] [WARNING] ERROR
[2023-05-10 11:46:46] [WARNING] main, handling exception: javax.net.ssl.SSLHandshakeException: Error signing certificate verify
Exception in thread "main" javax.net.ssl.SSLHandshakeException: Error signing certificate verify
at ru.CryptoPro.ssl.cl_3.a(Unknown Source)
at ru.CryptoPro.ssl.SSLSocketImpl.a(Unknown Source)
at ru.CryptoPro.ssl.cl_65.a(Unknown Source)
at ru.CryptoPro.ssl.cl_18.a(Unknown Source)
at ru.CryptoPro.ssl.cl_18.a(Unknown Source)
at ru.CryptoPro.ssl.cl_65.u(Unknown Source)
at ru.CryptoPro.ssl.cl_65.a(Unknown Source)
at ru.CryptoPro.ssl.SSLSocketImpl.a(Unknown Source)
at ru.CryptoPro.ssl.SSLSocketImpl.a(Unknown Source)
at ru.CryptoPro.ssl.cl_4.read(Unknown Source)
at org.apache.http.impl.conn.LoggingInputStream.read(LoggingInputStream.java:84)
at org.apache.http.impl.io.SessionInputBufferImpl.streamRead(SessionInputBufferImpl.java:137)
at org.apache.http.impl.io.SessionInputBufferImpl.fillBuffer(SessionInputBufferImpl.java:153)
at org.apache.http.impl.io.SessionInputBufferImpl.readLine(SessionInputBufferImpl.java:280)
at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:138)
at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:56)
at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:259)
at org.apache.http.impl.DefaultBHttpClientConnection.receiveResponseHeader(DefaultBHttpClientConnection.java:163)
at org.apache.http.impl.conn.CPoolProxy.receiveResponseHeader(CPoolProxy.java:157)
at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:273)
at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:125)
at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:272)
at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:186)
at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89)
at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:108)
at ru.tsbnk.Main.tryConnectV4(Main.java:155)
at ru.tsbnk.Main.main(Main.java:75)
Caused by: java.security.SignatureException: Unsupported method.
at ru.CryptoPro.JCSP.Key.AbstractKeySpec.signature(Unknown Source)
at ru.CryptoPro.JCP.Sign.cl_0.engineSign(Unknown Source)
at java.base/java.security.Signature.sign(Signature.java:712)
at ru.CryptoPro.ssl.cl_52.<init>(Unknown Source)
... 27 more


Помогите пожалуйста, что не так?

Offline Евгений Афанасьев  
#2 Оставлено : 10 мая 2023 г. 12:39:58(UTC)
Евгений Афанасьев

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 3,963
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 704 раз в 665 постах
Добрый день.
Цитата:

Caused by: java.security.SignatureException: Unsupported method.
at ru.CryptoPro.JCSP.Key.AbstractKeySpec.signature(Unknown Source)
at ru.CryptoPro.JCP.Sign.cl_0.engineSign(Unknown Source)
...

Возникла путаница с провайдерами. Закрытый ключ, видимо, получен с помощью KeyStore провайдера JCSP, а cpSSL настроен на работу с JCP.
Нужно определиться, какой провайдер должен использоваться: JCP или JCSP.
После этого можно либо задать нужный провайдер по умолчанию
* в панели управления (вкладка "Алгоритмы"), или
* в java.security поставить нужный провайдер выше другого (например, если требуется JCSP, то он должен быть в списке провайдеров выше JCP и с правильным номером), или
* или программно задать cpSSLConfig.setDefaultSSLProvider(<имя провайдера>) с нужным именем провайдера для cpSSL.
При этом имя провайдера по умолчанию должно совпадать с тем, что используется в KeyStore для получения ключа.
thanks 1 пользователь поблагодарил Евгений Афанасьев за этот пост.
jrc834 оставлено 10.05.2023(UTC)
Offline jrc834  
#3 Оставлено : 10 мая 2023 г. 13:05:32(UTC)
jrc834

Статус: Новичок

Группы: Участники
Зарегистрирован: 05.05.2023(UTC)
Сообщений: 8

Сказал(а) «Спасибо»: 2 раз
Спасибо огромное, получилось получить токен.
Еще вопрос про получение ключа провайдером. Речь о получении в коде или с помощью какого провайдера он сгенерен?

Если про получение в коде, так я явно указываю JCSP.PROVIDER_NAME, или еще нужно и явно указывать провайдера по умолчанию?

Цитата:

KeyStore keyStore = KeyStore.getInstance(JCSP.HD_STORE_NAME, JCSP.PROVIDER_NAME);
Offline Евгений Афанасьев  
#4 Оставлено : 10 мая 2023 г. 13:10:36(UTC)
Евгений Афанасьев

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 3,963
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 704 раз в 665 постах
С KeyStore все нормально. Но cpSSL (TLS) умеет работать как с JCSP, так и JCP. По умолчанию cpSSL работает с JCP. Поэтому, чтобы использовать связку cpSSL+JCSP, надо либо сделать JCSP провайдером по умолчанию глобально (в java.security или в панели), либо программно с помощью cpSSLConfig.setDefaultSSLProvider(JCSP.PROVIDER_NAME) (где-то в начале кода).
Offline jrc834  
#5 Оставлено : 10 мая 2023 г. 13:25:51(UTC)
jrc834

Статус: Новичок

Группы: Участники
Зарегистрирован: 05.05.2023(UTC)
Сообщений: 8

Сказал(а) «Спасибо»: 2 раз
Понятно, еще раз большое Вам спасибо за объяснение.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.