Atom Лента - Форум КриптоПро - Тема:Запрос корневого сертификата с CPCA - 10Форум КриптоПро - Atom Лентаurn:https:--www-cryptopro-ru:AtomLenta:ForumKriptoPro:Tema:ZaproskornevogosertifikatasCPCA-10:1Copyright 2024 Форум КриптоПро2024-03-29T10:24:14Zhttps://www.cryptopro.ru/forum2/Images/YAFLogo.pngForum Adminhttps://www.cryptopro.ruforum@cryptopro.ruЕвгений Афанасьевhttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=1064&name=Евгений АфанасьевЕвгений Афанасьевhttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=1064&name=Евгений Афанасьевalbertainohttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=29921&name=albertainoalbertainohttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=29921&name=albertainoЕвгений Афанасьевhttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=1064&name=Евгений Афанасьевalbertainohttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=29921&name=albertainoЕвгений Афанасьевhttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=1064&name=Евгений Афанасьевalbertainohttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=29921&name=albertainoЕвгений Афанасьевhttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=1064&name=Евгений Афанасьевalbertainohttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=29921&name=albertainoYetAnotherForum.NETurn:https:--www-cryptopro-ru:ftPosts:st1:meid44726:1Запрос корневого сертификата с CPCA<table class="content postContainer_Alt" width="100%"><tr><td><div class="quote"><span class="quotetitle">Автор: albertaino <a href="/forum2/default.aspx?g=posts&m=44281#post44281"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote>Спасибо за ответы, но проблему они не решают.<br /><br />Если бы все было как вы говорите, то у меня не получилось бы следующее:<br /><br />1) В панели КриптоПро под iOS делаю "Удалить ключи и сертификаты"<br />2) Ввожу адрес CA (АДРЕС НАЧИНАЕТСЯ С HTTPS://). CA находится в нашей сети, никаких его корневых нет в trust store<br />3) Нажимаю "Установить корневой сертификат" - сертификат появляется в файле root.sto.<br /><br />Каким образом проверяется сертификат CA в нашей сети? В trust store не помещался его корневой. Но панель управления его берет<br />по HTTPS-соединению и устанавливает в root.sto.</div></div><br /><br />Внешний java интерфейс не позволяет осуществить подключение по https без доверенных корневых сертификатов.<br /><br /></td></tr></table>2013-12-04T08:53:28+03:002013-12-04T08:53:28+03:00Евгений Афанасьев<table class="content postContainer_Alt" width="100%"><tr><td><div class="quote"><span class="quotetitle">Автор: albertaino <a href="/forum2/default.aspx?g=posts&m=44281#post44281"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote>Спасибо за ответы, но проблему они не решают.<br /><br />Если бы все было как вы говорите, то у меня не получилось бы следующее:<br /><br />1) В панели КриптоПро под iOS делаю "Удалить ключи и сертификаты"<br />2) Ввожу адрес CA (АДРЕС НАЧИНАЕТСЯ С HTTPS://). CA находится в нашей сети, никаких его корневых нет в trust store<br />3) Нажимаю "Установить корневой сертификат" - сертификат появляется в файле root.sto.<br /><br />Каким образом проверяется сертификат CA в нашей сети? В trust store не помещался его корневой. Но панель управления его берет<br />по HTTPS-соединению и устанавливает в root.sto.</div></div><br /><br />Внешний java интерфейс не позволяет осуществить подключение по https без доверенных корневых сертификатов.<br /><br /></td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid44290:1Запрос корневого сертификата с CPCA<table class="content postContainer" width="100%"><tr><td>Еще вопрос по этой же теме.<br /><br />Запускаю панель управления под iOS, устанавливаю корневой сертификат, беру оттуда файл root.sto,<br />подкладываю его в Андроид (cprocsp/users/stores/root.sto), запускаю в программе TLS-сессию,<br />сертификат сервера (подписанный тем CA что в root.sto) проверяется, в результате<br /><br />Error 0x800b0110 (CERT_E_WRONG_USAGE) returned by CertVerifyCertificateChainPolicy!<br /><br />Как лечить? добавить еще OID здесь:<br /><br /> LPSTR rgszUsages[] = { szOID_PKIX_KP_SERVER_AUTH,<br /> szOID_SERVER_GATED_CRYPTO,<br /> szOID_SGC_NETSCAPE };<br /><br />или добавить флаги сюда:<br /><br /> DWORD dwCertFlags = 0;<br /><br /> HTTPSPolicyCallbackData polHttps;<br /><br /> polHttps.fdwChecks = dwCertFlags;<br /><br /> if(!CertVerifyCertificateChainPolicy(<br /> CERT_CHAIN_POLICY_SSL,<br /> pChainContext,<br /> &PolicyPara,<br /> &PolicyStatus))<br />?</td></tr></table>2013-11-20T17:24:25+03:002013-11-20T17:24:25+03:00albertaino<table class="content postContainer" width="100%"><tr><td>Еще вопрос по этой же теме.<br /><br />Запускаю панель управления под iOS, устанавливаю корневой сертификат, беру оттуда файл root.sto,<br />подкладываю его в Андроид (cprocsp/users/stores/root.sto), запускаю в программе TLS-сессию,<br />сертификат сервера (подписанный тем CA что в root.sto) проверяется, в результате<br /><br />Error 0x800b0110 (CERT_E_WRONG_USAGE) returned by CertVerifyCertificateChainPolicy!<br /><br />Как лечить? добавить еще OID здесь:<br /><br /> LPSTR rgszUsages[] = { szOID_PKIX_KP_SERVER_AUTH,<br /> szOID_SERVER_GATED_CRYPTO,<br /> szOID_SGC_NETSCAPE };<br /><br />или добавить флаги сюда:<br /><br /> DWORD dwCertFlags = 0;<br /><br /> HTTPSPolicyCallbackData polHttps;<br /><br /> polHttps.fdwChecks = dwCertFlags;<br /><br /> if(!CertVerifyCertificateChainPolicy(<br /> CERT_CHAIN_POLICY_SSL,<br /> pChainContext,<br /> &PolicyPara,<br /> &PolicyStatus))<br />?</td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid44281:1Запрос корневого сертификата с CPCA<table class="content postContainer_Alt" width="100%"><tr><td>Спасибо за ответы, но проблему они не решают.<br /><br />Если бы все было как вы говорите, то у меня не получилось бы следующее:<br /><br />1) В панели КриптоПро под iOS делаю "Удалить ключи и сертификаты"<br />2) Ввожу адрес CA (АДРЕС НАЧИНАЕТСЯ С HTTPS://). CA находится в нашей сети, никаких его корневых нет в trust store<br />3) Нажимаю "Установить корневой сертификат" - сертификат появляется в файле root.sto.<br /><br />Каким образом проверяется сертификат CA в нашей сети? В trust store не помещался его корневой. Но панель управления его берет<br />по HTTPS-соединению и устанавливает в root.sto.</td></tr></table>2013-11-20T16:02:00+03:002013-11-20T16:02:00+03:00albertaino<table class="content postContainer_Alt" width="100%"><tr><td>Спасибо за ответы, но проблему они не решают.<br /><br />Если бы все было как вы говорите, то у меня не получилось бы следующее:<br /><br />1) В панели КриптоПро под iOS делаю "Удалить ключи и сертификаты"<br />2) Ввожу адрес CA (АДРЕС НАЧИНАЕТСЯ С HTTPS://). CA находится в нашей сети, никаких его корневых нет в trust store<br />3) Нажимаю "Установить корневой сертификат" - сертификат появляется в файле root.sto.<br /><br />Каким образом проверяется сертификат CA в нашей сети? В trust store не помещался его корневой. Но панель управления его берет<br />по HTTPS-соединению и устанавливает в root.sto.</td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid44279:1Запрос корневого сертификата с CPCA<table class="content postContainer" width="100%"><tr><td><div class="quote"><span class="quotetitle">Автор: albertaino <a href="/forum2/default.aspx?g=posts&m=44276#post44276"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote>Повторяю вопрос.<br /><br />Как взять корневой сертификат по HTTPS с CA, О КОТОРОМ ДО СИХ ПОР НИЧЕГО НЕ БЫЛО ИЗВЕСТНО?<br /><br />trust store не выход - у меня нечем проверить сертификат этого CA, а без этого HTTPS-соединение не устанавливается.<br />Как в параметрах соединения, на котором работает GostCertificateRequest.getEncodedRootCert, задать доверие всем сертификатам?<br /><br />Корневой сертификат сверяется по отпечатку, так же как в панели под iOS.<br /><br />КАК ВЗЯТЬ КОРНЕВОЙ СЕРТИФИКАТ ПО HTTPS ???????????????? По HTTP стягивается без проблем</div></div><br /><br />Хранилище доверенных сертификатов должно быть, как минимум - корневой сертификат для связи с тем же CA. Если совсем нет корневых, то берите по http.<br /><br /></td></tr></table>2013-11-20T14:47:30+03:002013-11-20T14:47:30+03:00Евгений Афанасьев<table class="content postContainer" width="100%"><tr><td><div class="quote"><span class="quotetitle">Автор: albertaino <a href="/forum2/default.aspx?g=posts&m=44276#post44276"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote>Повторяю вопрос.<br /><br />Как взять корневой сертификат по HTTPS с CA, О КОТОРОМ ДО СИХ ПОР НИЧЕГО НЕ БЫЛО ИЗВЕСТНО?<br /><br />trust store не выход - у меня нечем проверить сертификат этого CA, а без этого HTTPS-соединение не устанавливается.<br />Как в параметрах соединения, на котором работает GostCertificateRequest.getEncodedRootCert, задать доверие всем сертификатам?<br /><br />Корневой сертификат сверяется по отпечатку, так же как в панели под iOS.<br /><br />КАК ВЗЯТЬ КОРНЕВОЙ СЕРТИФИКАТ ПО HTTPS ???????????????? По HTTP стягивается без проблем</div></div><br /><br />Хранилище доверенных сертификатов должно быть, как минимум - корневой сертификат для связи с тем же CA. Если совсем нет корневых, то берите по http.<br /><br /></td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid44276:1Запрос корневого сертификата с CPCA<table class="content postContainer_Alt" width="100%"><tr><td>Повторяю вопрос.<br /><br />Как взять корневой сертификат по HTTPS с CA, О КОТОРОМ ДО СИХ ПОР НИЧЕГО НЕ БЫЛО ИЗВЕСТНО?<br /><br />trust store не выход - у меня нечем проверить сертификат этого CA, а без этого HTTPS-соединение не устанавливается.<br />Как в параметрах соединения, на котором работает GostCertificateRequest.getEncodedRootCert, задать доверие всем сертификатам?<br /><br />Корневой сертификат сверяется по отпечатку, так же как в панели под iOS.<br /><br />КАК ВЗЯТЬ КОРНЕВОЙ СЕРТИФИКАТ ПО HTTPS ???????????????? По HTTP стягивается без проблем</td></tr></table>2013-11-20T14:36:17+03:002013-11-20T14:36:17+03:00albertaino<table class="content postContainer_Alt" width="100%"><tr><td>Повторяю вопрос.<br /><br />Как взять корневой сертификат по HTTPS с CA, О КОТОРОМ ДО СИХ ПОР НИЧЕГО НЕ БЫЛО ИЗВЕСТНО?<br /><br />trust store не выход - у меня нечем проверить сертификат этого CA, а без этого HTTPS-соединение не устанавливается.<br />Как в параметрах соединения, на котором работает GostCertificateRequest.getEncodedRootCert, задать доверие всем сертификатам?<br /><br />Корневой сертификат сверяется по отпечатку, так же как в панели под iOS.<br /><br />КАК ВЗЯТЬ КОРНЕВОЙ СЕРТИФИКАТ ПО HTTPS ???????????????? По HTTP стягивается без проблем</td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid44265:1Запрос корневого сертификата с CPCA<table class="content postContainer" width="100%"><tr><td>Попробуйте записать с помощью CertStore, находящегося в JCP (см. как работать с CertStore в progguide.html в дистрибутиве JCP).</td></tr></table>2013-11-20T13:19:44+03:002013-11-20T13:19:44+03:00Евгений Афанасьев<table class="content postContainer" width="100%"><tr><td>Попробуйте записать с помощью CertStore, находящегося в JCP (см. как работать с CertStore в progguide.html в дистрибутиве JCP).</td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid44260:1Запрос корневого сертификата с CPCA<table class="content postContainer_Alt" width="100%"><tr><td>А что при этом должно быть в trust store? Или оно просто должно быть создано и указано в параметрах? Мне надо взять корневой сертификат с CPCA, про который до этого ничего не было известно, и установить его в хранилище. При это отпечаток может быть сверен по телефону. В trust store ничего не может быть относящегося к этому CA.</td></tr></table>2013-11-20T12:58:27+03:002013-11-20T12:58:27+03:00albertaino<table class="content postContainer_Alt" width="100%"><tr><td>А что при этом должно быть в trust store? Или оно просто должно быть создано и указано в параметрах? Мне надо взять корневой сертификат с CPCA, про который до этого ничего не было известно, и установить его в хранилище. При это отпечаток может быть сверен по телефону. В trust store ничего не может быть относящегося к этому CA.</td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid44259:1Запрос корневого сертификата с CPCA<table class="content postContainer" width="100%"><tr><td>Здравствуйте.<br />Попробуйте с помощью System.setProperty задать trust store.<br /><br />System.setProperty("javax.net.ssl.trustStoreProvider", "JCSP");<br />System.setProperty("javax.net.ssl.trustStoreType", "CertStore");<br />System.setProperty("javax.net.ssl.trustStore", "путь_к_хранилищу");<br />System.setProperty("javax.net.ssl.trustStorePassword", "пароль");<br /></td></tr></table>2013-11-20T12:46:34+03:002013-11-20T12:46:34+03:00Евгений Афанасьев<table class="content postContainer" width="100%"><tr><td>Здравствуйте.<br />Попробуйте с помощью System.setProperty задать trust store.<br /><br />System.setProperty("javax.net.ssl.trustStoreProvider", "JCSP");<br />System.setProperty("javax.net.ssl.trustStoreType", "CertStore");<br />System.setProperty("javax.net.ssl.trustStore", "путь_к_хранилищу");<br />System.setProperty("javax.net.ssl.trustStorePassword", "пароль");<br /></td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid44256:1Запрос корневого сертификата с CPCA<table class="content postContainer_Alt" width="100%"><tr><td>Здравствуйте!<br /><br />В iOS-фреймворке есть панель управления, где можно скачать и установить корневой сертификат CA.<br />В андроиде такой панели нет, поэтому приходится использовать<br />GostCertificateRequest.getEncodedRootCert(httpAddress).<br /><br />При запросе по HTTP (httpAddress = "http://www.cryptopro.ru/certsrv/") корневой сертификат<br />запрашивается нормально, но в случае HTTPS (httpAddress = "https://cryptopro.ru:5555/ui")<br />выбрасывается исключение java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.<br /><br />(org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:401)).<br /><br />Как указать GostCertificateRequest доверять всем сертификатам, как это делается в панели для iOS? Там при удалении всех ключей по HTTPS нормально устанавливается корневой сертификат.<br /><br />Можно ли здесь как-то применить настройку как в JTLS_samples / ApacheHttpClient4XExample.java :<br /><br /> SSLSocketFactory socketFactory = allowAllHostnameVerifier<br /> ? new SSLSocketFactory(sslContext, SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER)<br /> : new SSLSocketFactory(sslContext);<br /><br />Или нужен какой-то клиентский сертификат? Все примеры в samples.jar только для HTTP и "http://www.cryptopro.ru/certsrv/"</td></tr></table>2013-11-20T12:46:40+03:002013-11-20T12:46:40+03:00albertaino<table class="content postContainer_Alt" width="100%"><tr><td>Здравствуйте!<br /><br />В iOS-фреймворке есть панель управления, где можно скачать и установить корневой сертификат CA.<br />В андроиде такой панели нет, поэтому приходится использовать<br />GostCertificateRequest.getEncodedRootCert(httpAddress).<br /><br />При запросе по HTTP (httpAddress = "http://www.cryptopro.ru/certsrv/") корневой сертификат<br />запрашивается нормально, но в случае HTTPS (httpAddress = "https://cryptopro.ru:5555/ui")<br />выбрасывается исключение java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.<br /><br />(org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:401)).<br /><br />Как указать GostCertificateRequest доверять всем сертификатам, как это делается в панели для iOS? Там при удалении всех ключей по HTTPS нормально устанавливается корневой сертификат.<br /><br />Можно ли здесь как-то применить настройку как в JTLS_samples / ApacheHttpClient4XExample.java :<br /><br /> SSLSocketFactory socketFactory = allowAllHostnameVerifier<br /> ? new SSLSocketFactory(sslContext, SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER)<br /> : new SSLSocketFactory(sslContext);<br /><br />Или нужен какой-то клиентский сертификат? Все примеры в samples.jar только для HTTP и "http://www.cryptopro.ru/certsrv/"</td></tr></table>