Atom Лента - Форум КриптоПро - Тема:Клиентский сертификат - 10Форум КриптоПро - Atom Лентаurn:https:--www-cryptopro-ru:AtomLenta:ForumKriptoPro:Tema:Klientskijjsertifikat-10:1Copyright 2024 Форум КриптоПро2024-03-28T13:41:41Zhttps://www.cryptopro.ru/forum2/Images/YAFLogo.pngForum Adminhttps://www.cryptopro.ruforum@cryptopro.ruИлья Кожевниковhttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=58063&name=Илья КожевниковИлья Кожевниковhttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=58063&name=Илья Кожевниковpdhttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=6841&name=pdИлья Кожевниковhttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=58063&name=Илья КожевниковИлья Кожевниковhttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=58063&name=Илья КожевниковАлександр Лавникhttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=42010&name=Александр ЛавникИлья Кожевниковhttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=58063&name=Илья КожевниковYetAnotherForum.NETurn:https:--www-cryptopro-ru:ftPosts:st1:meid122784:1Клиентский сертификат<table class="content postContainer_Alt" width="100%"><tr><td>Использую курл. Мне помогла опция CURLOPT_SSL_VERIFYHOST - false, CURLOPT_SSL_VERIFYPEER как я понял совсем отключает проверку сертификата. Все хорошо, но смутило вот такой момент: в ЖТЯИ.00101-02 95 01, в таблице со списком команд указано что CURLOPT_SSL_VERIFYHOST и CURLOPT_SSL_VERIFYPEER использовать нельзя. То есть релизное приложение с этими опциями не пройдет сертификацию? Все же нужно будет переделывать сертификат с корректным именем хоста?</td></tr></table>2021-02-12T17:34:29+03:002021-02-12T17:34:29+03:00Илья Кожевников<table class="content postContainer_Alt" width="100%"><tr><td>Использую курл. Мне помогла опция CURLOPT_SSL_VERIFYHOST - false, CURLOPT_SSL_VERIFYPEER как я понял совсем отключает проверку сертификата. Все хорошо, но смутило вот такой момент: в ЖТЯИ.00101-02 95 01, в таблице со списком команд указано что CURLOPT_SSL_VERIFYHOST и CURLOPT_SSL_VERIFYPEER использовать нельзя. То есть релизное приложение с этими опциями не пройдет сертификацию? Все же нужно будет переделывать сертификат с корректным именем хоста?</td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid121344:1Клиентский сертификат<table class="content postContainer" width="100%"><tr><td><div class="quote"><span class="quotetitle">Автор: Илья Кожевников <a href="/forum2/default.aspx?g=posts&m=121332#post121332"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote>Ну похоже, и вправду проблема в этом. Это обязательное поле, а в сертификате указано вовсе не то, что надо. Тогда вопрос в другом. Сейчас переделать сертификат немного затруднительно, можно ли как-то заставить криптопро игнорировать сравнение доменного имени в клиентском сертификате хотя бы чисто для теста, чтоб проверить что в остальном все работает?</div></div><br />При вызове AcquireCredentialsHandle() в структуре SCHANNEL_CRED::dwFlags есть возможность выставить SCH_CRED_MANUAL_CRED_VALIDATION, тогда проверка сертификата в рамках TLS производиться не будет.<br /><br />В случае curl, смотрите в сторону CURLOPT_SSL_VERIFYPEER = FALSE.</td></tr></table>2020-12-14T13:59:49+03:002020-12-14T13:59:49+03:00pd<table class="content postContainer" width="100%"><tr><td><div class="quote"><span class="quotetitle">Автор: Илья Кожевников <a href="/forum2/default.aspx?g=posts&m=121332#post121332"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote>Ну похоже, и вправду проблема в этом. Это обязательное поле, а в сертификате указано вовсе не то, что надо. Тогда вопрос в другом. Сейчас переделать сертификат немного затруднительно, можно ли как-то заставить криптопро игнорировать сравнение доменного имени в клиентском сертификате хотя бы чисто для теста, чтоб проверить что в остальном все работает?</div></div><br />При вызове AcquireCredentialsHandle() в структуре SCHANNEL_CRED::dwFlags есть возможность выставить SCH_CRED_MANUAL_CRED_VALIDATION, тогда проверка сертификата в рамках TLS производиться не будет.<br /><br />В случае curl, смотрите в сторону CURLOPT_SSL_VERIFYPEER = FALSE.</td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid121332:1Клиентский сертификат<table class="content postContainer_Alt" width="100%"><tr><td>Ну похоже, и вправду проблема в этом. Это обязательное поле, а в сертификате указано вовсе не то, что надо. Тогда вопрос в другом. Сейчас переделать сертификат немного затруднительно, можно ли как-то заставить криптопро игнорировать сравнение доменного имени в клиентском сертификате хотя бы чисто для теста, чтоб проверить что в остальном все работает?</td></tr></table>2020-12-14T11:24:22+03:002020-12-14T11:24:22+03:00Илья Кожевников<table class="content postContainer_Alt" width="100%"><tr><td>Ну похоже, и вправду проблема в этом. Это обязательное поле, а в сертификате указано вовсе не то, что надо. Тогда вопрос в другом. Сейчас переделать сертификат немного затруднительно, можно ли как-то заставить криптопро игнорировать сравнение доменного имени в клиентском сертификате хотя бы чисто для теста, чтоб проверить что в остальном все работает?</td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid121322:1Клиентский сертификат<table class="content postContainer" width="100%"><tr><td>Использую Xcode 12.2, iOS 14.2, КриптоПро CSP v5.0<br />Моя задача сделать tls соединение, при хэндшейке сервер запрашивает клиентский сертификат для подтверждения клиента. Соединение tls без подтверждения клиента у меня работают.<br />Вначале я добавляю ca сертификат в хранилище<br />CertAddEncodedCertificateToStore(hStoreMy, X509_ASN_ENCODING | PKCS_7_ASN_ENCODING, cert, lSize, CERT_STORE_ADD_REPLACE_EXISTING, &pCertCtx);<br />После курлом делаю запрос и получаю вот такой лог.<br /><br />2020-12-13 22:24:32.106178+0300 CreateFile[12509:455799] suid2 22:24:32.105975 support_n_getpwuid_r:61 p:12509 t:0x0x7fff5e739311 support_n_getpwuid_r(502, 0x0x7000029d20c8, 0x0x7000029d21a0, 1024, 0x0x7000029d2198) = 0 fail Unknown error: -1(-1)<br /><ssp>0x7000029d5000:AddToMessageLog!CryptoPro TLS. Error 0x800b0109 validating server secretsite.ru certificate: A certificate chain processed, but terminated in a root certificate which is not trusted by the trust provider. (:5491)<br /><ssp>0x7000029d5000:InitializeSecurityContextW!(failed: 0x80090325) (:2614)<br />* schannel: next InitializeSecurityContext failed: SEC_E_UNTRUSTED_ROOT (0x80090325) - The certificate chain was issued by an authority that is not trusted.<br />* Closing connection 0<br />* schannel: shutting down SSL/TLS connection with secretsite.ru<br /><br />После добавления клиентского сертификата в хранилище сертификатов, в логах меняется ошибка<br />2020-12-13 22:21:57.304022+0300 CreateFile[12439:453848] suid2 22:21:57.303861 support_n_getpwuid_r:61 p:12439 t:0x0x7fff5e739311 support_n_getpwuid_r(502, 0x0x70000031b728, 0x0x70000031b800, 1024, 0x0x70000031b7f8) = 0 fail Unknown error: -1(-1)<br /><ssp>0x70000031f000:AddToMessageLog!CryptoPro TLS. Error 0x800b010f validating server secretsite.ru certificate: The certificate's CN name does not match the passed value. (:5491)<br /><ssp>0x70000031f000:InitializeSecurityContextW!(failed: 0x80090322) (:2614)<br />* schannel: SNI or certificate check failed: SEC_E_WRONG_PRINCIPAL (0x80090322) - The target principal name is incorrect.<br />* Closing connection 0<br />* schannel: shutting down SSL/TLS connection with secretsite.ru<br /><br />Предполагаю, что тут возможно важен вот этот текст - The certificate's CN name does not match the passed value. Но не могу понять, сертификат подходит по каким-то параметрам, но не подходит по доменному имени? Просто сейчас мы меняем библиотеку на криптопро и наше предыдущее решение вполне нормально соединяется с этим сертификатом.</td></tr></table>2020-12-13T22:31:15+03:002020-12-13T22:31:15+03:00Илья Кожевников<table class="content postContainer" width="100%"><tr><td>Использую Xcode 12.2, iOS 14.2, КриптоПро CSP v5.0<br />Моя задача сделать tls соединение, при хэндшейке сервер запрашивает клиентский сертификат для подтверждения клиента. Соединение tls без подтверждения клиента у меня работают.<br />Вначале я добавляю ca сертификат в хранилище<br />CertAddEncodedCertificateToStore(hStoreMy, X509_ASN_ENCODING | PKCS_7_ASN_ENCODING, cert, lSize, CERT_STORE_ADD_REPLACE_EXISTING, &pCertCtx);<br />После курлом делаю запрос и получаю вот такой лог.<br /><br />2020-12-13 22:24:32.106178+0300 CreateFile[12509:455799] suid2 22:24:32.105975 support_n_getpwuid_r:61 p:12509 t:0x0x7fff5e739311 support_n_getpwuid_r(502, 0x0x7000029d20c8, 0x0x7000029d21a0, 1024, 0x0x7000029d2198) = 0 fail Unknown error: -1(-1)<br /><ssp>0x7000029d5000:AddToMessageLog!CryptoPro TLS. Error 0x800b0109 validating server secretsite.ru certificate: A certificate chain processed, but terminated in a root certificate which is not trusted by the trust provider. (:5491)<br /><ssp>0x7000029d5000:InitializeSecurityContextW!(failed: 0x80090325) (:2614)<br />* schannel: next InitializeSecurityContext failed: SEC_E_UNTRUSTED_ROOT (0x80090325) - The certificate chain was issued by an authority that is not trusted.<br />* Closing connection 0<br />* schannel: shutting down SSL/TLS connection with secretsite.ru<br /><br />После добавления клиентского сертификата в хранилище сертификатов, в логах меняется ошибка<br />2020-12-13 22:21:57.304022+0300 CreateFile[12439:453848] suid2 22:21:57.303861 support_n_getpwuid_r:61 p:12439 t:0x0x7fff5e739311 support_n_getpwuid_r(502, 0x0x70000031b728, 0x0x70000031b800, 1024, 0x0x70000031b7f8) = 0 fail Unknown error: -1(-1)<br /><ssp>0x70000031f000:AddToMessageLog!CryptoPro TLS. Error 0x800b010f validating server secretsite.ru certificate: The certificate's CN name does not match the passed value. (:5491)<br /><ssp>0x70000031f000:InitializeSecurityContextW!(failed: 0x80090322) (:2614)<br />* schannel: SNI or certificate check failed: SEC_E_WRONG_PRINCIPAL (0x80090322) - The target principal name is incorrect.<br />* Closing connection 0<br />* schannel: shutting down SSL/TLS connection with secretsite.ru<br /><br />Предполагаю, что тут возможно важен вот этот текст - The certificate's CN name does not match the passed value. Но не могу понять, сертификат подходит по каким-то параметрам, но не подходит по доменному имени? Просто сейчас мы меняем библиотеку на криптопро и наше предыдущее решение вполне нормально соединяется с этим сертификатом.</td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid121285:1Клиентский сертификат<table class="content postContainer_Alt" width="100%"><tr><td><div class="quote"><span class="quotetitle">Автор: Илья Кожевников <a href="/forum2/default.aspx?g=posts&m=121271#post121271"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote>Необходимо установить соединение с сервером с авторизацией клиента через сертификат. Проблема - никак не могу найти инфу где нужно устанавливать сертификат для авторизации клиента. Пробовал добавлять в хранилище ROOT, но получаю при запросе ошибку - schannel: SNI or certificate check failed: SEC_E_WRONG_PRINCIPAL<br />Как я понял, сертификат установил я неправильно. Помогите, люди добрые.</div></div><br />Здравствуйте.<br /><br />Уточните, пожалуйста:<br /><ul><li>версию используемой операционной системы</ul><ul><li>какие сборки наших программных продуктов используете</ul><ul><li>последовательность шагов, которая приводит к ошибке</ul><ul><li>конечную цель</ul><br />Также при возможности приложите имеющиеся скриншоты/логи.</td></tr></table>2020-12-11T14:48:06+03:002020-12-11T14:48:06+03:00Александр Лавник<table class="content postContainer_Alt" width="100%"><tr><td><div class="quote"><span class="quotetitle">Автор: Илья Кожевников <a href="/forum2/default.aspx?g=posts&m=121271#post121271"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote>Необходимо установить соединение с сервером с авторизацией клиента через сертификат. Проблема - никак не могу найти инфу где нужно устанавливать сертификат для авторизации клиента. Пробовал добавлять в хранилище ROOT, но получаю при запросе ошибку - schannel: SNI or certificate check failed: SEC_E_WRONG_PRINCIPAL<br />Как я понял, сертификат установил я неправильно. Помогите, люди добрые.</div></div><br />Здравствуйте.<br /><br />Уточните, пожалуйста:<br /><ul><li>версию используемой операционной системы</ul><ul><li>какие сборки наших программных продуктов используете</ul><ul><li>последовательность шагов, которая приводит к ошибке</ul><ul><li>конечную цель</ul><br />Также при возможности приложите имеющиеся скриншоты/логи.</td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid121271:1Клиентский сертификат<table class="content postContainer" width="100%"><tr><td>Необходимо установить соединение с сервером с авторизацией клиента через сертификат. Проблема - никак не могу найти инфу где нужно устанавливать сертификат для авторизации клиента. Пробовал добавлять в хранилище ROOT, но получаю при запросе ошибку - schannel: SNI or certificate check failed: SEC_E_WRONG_PRINCIPAL<br />Как я понял, сертификат установил я неправильно. Помогите, люди добрые.</td></tr></table>2020-12-10T23:37:59+03:002020-12-10T23:37:59+03:00Илья Кожевников<table class="content postContainer" width="100%"><tr><td>Необходимо установить соединение с сервером с авторизацией клиента через сертификат. Проблема - никак не могу найти инфу где нужно устанавливать сертификат для авторизации клиента. Пробовал добавлять в хранилище ROOT, но получаю при запросе ошибку - schannel: SNI or certificate check failed: SEC_E_WRONG_PRINCIPAL<br />Как я понял, сертификат установил я неправильно. Помогите, люди добрые.</td></tr></table>