Цитата:Все сертификаты должны быть ГОСТ, т.к. иностранные алгоритмы просто не поддерживаются.
Есть ли явное указание этого ограничения в документации по JCP/JTLS? В документации по JCP я не нашел такого ограничения использования сертификатов, встречающиеся упоминания ссылаются на X.509, например:
Программное обеспечение СКЗИ позволяет использовать российские криптографические алгоритмы и сертификаты открытых ключей стандарта X.509... Если действительно есть такое ограничение, то хотелось бы увидеть их в требованиях/ограничениях в документации.
Меня в данном случае смущает то, что
1. Предыдущая версия JCP у нас работала в данном сценарии.
2. Панель управления(ControlPanel) JCP строит таки цепочку сертификата с использованием проблемного хранилища.
3. При использовании реализации из пакета com.sun.net.ssl так же все работает. Я имею ввиду использование
import com.sun.net.ssl.SSLContext;
import com.sun.net.ssl.TrustManagerFactory;
вместо
import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManagerFactory;Цитата:Попробуйте включить логирование, как описано тут -
https://support.cryptopr...st/Index/6/kriptopro-jcp (Включение логов для JCP и JTLS)
В первом сообщении я как раз привел кусок из логов, которое настраивал по этой инструкции. Собственно, по логам там не совсем понятно что происходит, там после того, как сервер присылает цепочку сертификатов идут записи:
<record>
<date>2018-05-23T17:30:50</date>
<millis>1527071450028</millis>
<sequence>147</sequence>
<logger>ru.CryptoPro.ssl.SSLLogger</logger>
<level>FINER</level>
<class>ru.CryptoPro.ssl.pc_4.cl_2</class>
<method>a</method>
<thread>1</thread>
<message>Signature provider: JCP</message>
</record>
<record>
<date>2018-05-23T17:30:50</date>
<millis>1527071450044</millis>
<sequence>190</sequence>
<logger>ru.CryptoPro.ssl.SSLLogger</logger>
<level>FINE</level>
<class>ru.CryptoPro.ssl.cl_96</class>
<method>invalidate</method>
<thread>1</thread>
<message>%% Invalidated: [Session-1, TLS_CIPHER_2001]</message>
</record>
<record>
<date>2018-05-23T17:30:50</date>
<millis>1527071450044</millis>
<sequence>191</sequence>
<logger>ru.CryptoPro.ssl.SSLLogger</logger>
<level>FINE</level>
<class>ru.CryptoPro.ssl.cl_97</class>
<method>a</method>
<thread>1</thread>
<message>main, SEND TLSv1 ALERT: fatal, </message>
</record>
<record>
<date>2018-05-23T17:30:50</date>
<millis>1527071450045</millis>
<sequence>192</sequence>
<logger>ru.CryptoPro.ssl.SSLLogger</logger>
<level>FINE</level>
<class>ru.CryptoPro.ssl.cl_97</class>
<method>a</method>
<thread>1</thread>
<message>description = certificate_unknown</message>
</record>
<record>
<date>2018-05-23T17:30:50</date>
<millis>1527071450045</millis>
<sequence>193</sequence>
<logger>ru.CryptoPro.ssl.SSLLogger</logger>
<level>ALL</level>
<class>ru.CryptoPro.ssl.cl_75</class>
<method>a</method>
<thread>1</thread>
<message>[Raw write]: length = 7
0000: 15 03 01 00 02 02 2E .......
</message>
</record>
<record>
<date>2018-05-23T17:30:50</date>
<millis>1527071450045</millis>
<sequence>194</sequence>
<logger>ru.CryptoPro.ssl.SSLLogger</logger>
<level>FINER</level>
<class>ru.CryptoPro.ssl.cl_97</class>
<method>h</method>
<thread>1</thread>
<message>main, called closeSocket()</message>
</record>
<record>
<date>2018-05-23T17:30:50</date>
<millis>1527071450045</millis>
<sequence>195</sequence>
<logger>ru.CryptoPro.ssl.SSLLogger</logger>
<level>WARNING</level>
<class>ru.CryptoPro.ssl.cl_97</class>
<method>a</method>
<thread>1</thread>
<message>main, handling exception: javax.net.ssl.SSLHandshakeException: ru.CryptoPro.ssl.pc_4.cl_5: PKIX path building failed: ru.CryptoPro.reprov.certpath.JCPCertPathBuilderException: unable to find valid certification path to requested target</message>
</record>
Как узнать причину появления данной ошибки?
В чем может быть причина того, что при использовании реализации классов com.sun.net.ssl.SSLContext и com.sun.net.ssl.TrustManagerFactory все работает, а при использовании javax.net.ssl.SSLContext и javax.net.ssl.TrustManagerFactory нет?
Почему, раз говорите, цепочка сертификатов должны быть полностью состоять из ГОСТ сертификатов, панель управления позволяет построить цепочку сертификатов, в которой есть сертификаты RSA?