Статус: Участник
Группы: Участники
Зарегистрирован: 07.12.2020(UTC) Сообщений: 13 Сказал(а) «Спасибо»: 3 раз
|
Необходимо установить соединение с сервером с авторизацией клиента через сертификат. Проблема - никак не могу найти инфу где нужно устанавливать сертификат для авторизации клиента. Пробовал добавлять в хранилище ROOT, но получаю при запросе ошибку - schannel: SNI or certificate check failed: SEC_E_WRONG_PRINCIPAL Как я понял, сертификат установил я неправильно. Помогите, люди добрые.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 30.06.2016(UTC) Сообщений: 3,383 Сказал «Спасибо»: 53 раз Поблагодарили: 776 раз в 718 постах
|
Автор: Илья Кожевников Необходимо установить соединение с сервером с авторизацией клиента через сертификат. Проблема - никак не могу найти инфу где нужно устанавливать сертификат для авторизации клиента. Пробовал добавлять в хранилище ROOT, но получаю при запросе ошибку - schannel: SNI or certificate check failed: SEC_E_WRONG_PRINCIPAL Как я понял, сертификат установил я неправильно. Помогите, люди добрые. Здравствуйте. Уточните, пожалуйста: - версию используемой операционной системы
- какие сборки наших программных продуктов используете
- последовательность шагов, которая приводит к ошибке
Также при возможности приложите имеющиеся скриншоты/логи. |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 07.12.2020(UTC) Сообщений: 13 Сказал(а) «Спасибо»: 3 раз
|
Использую Xcode 12.2, iOS 14.2, КриптоПро CSP v5.0 Моя задача сделать tls соединение, при хэндшейке сервер запрашивает клиентский сертификат для подтверждения клиента. Соединение tls без подтверждения клиента у меня работают. Вначале я добавляю ca сертификат в хранилище CertAddEncodedCertificateToStore(hStoreMy, X509_ASN_ENCODING | PKCS_7_ASN_ENCODING, cert, lSize, CERT_STORE_ADD_REPLACE_EXISTING, &pCertCtx); После курлом делаю запрос и получаю вот такой лог.
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) <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) <ssp>0x7000029d5000:InitializeSecurityContextW!(failed: 0x80090325) (:2614) * schannel: next InitializeSecurityContext failed: SEC_E_UNTRUSTED_ROOT (0x80090325) - The certificate chain was issued by an authority that is not trusted. * Closing connection 0 * schannel: shutting down SSL/TLS connection with secretsite.ru
После добавления клиентского сертификата в хранилище сертификатов, в логах меняется ошибка 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) <ssp>0x70000031f000:AddToMessageLog!CryptoPro TLS. Error 0x800b010f validating server secretsite.ru certificate: The certificate's CN name does not match the passed value. (:5491) <ssp>0x70000031f000:InitializeSecurityContextW!(failed: 0x80090322) (:2614) * schannel: SNI or certificate check failed: SEC_E_WRONG_PRINCIPAL (0x80090322) - The target principal name is incorrect. * Closing connection 0 * schannel: shutting down SSL/TLS connection with secretsite.ru
Предполагаю, что тут возможно важен вот этот текст - The certificate's CN name does not match the passed value. Но не могу понять, сертификат подходит по каким-то параметрам, но не подходит по доменному имени? Просто сейчас мы меняем библиотеку на криптопро и наше предыдущее решение вполне нормально соединяется с этим сертификатом.
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 07.12.2020(UTC) Сообщений: 13 Сказал(а) «Спасибо»: 3 раз
|
Ну похоже, и вправду проблема в этом. Это обязательное поле, а в сертификате указано вовсе не то, что надо. Тогда вопрос в другом. Сейчас переделать сертификат немного затруднительно, можно ли как-то заставить криптопро игнорировать сравнение доменного имени в клиентском сертификате хотя бы чисто для теста, чтоб проверить что в остальном все работает?
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 16.09.2010(UTC) Сообщений: 1,449 Откуда: КРИПТО-ПРО
Сказал(а) «Спасибо»: 31 раз Поблагодарили: 417 раз в 308 постах
|
Автор: Илья Кожевников Ну похоже, и вправду проблема в этом. Это обязательное поле, а в сертификате указано вовсе не то, что надо. Тогда вопрос в другом. Сейчас переделать сертификат немного затруднительно, можно ли как-то заставить криптопро игнорировать сравнение доменного имени в клиентском сертификате хотя бы чисто для теста, чтоб проверить что в остальном все работает? При вызове AcquireCredentialsHandle() в структуре SCHANNEL_CRED::dwFlags есть возможность выставить SCH_CRED_MANUAL_CRED_VALIDATION, тогда проверка сертификата в рамках TLS производиться не будет. В случае curl, смотрите в сторону CURLOPT_SSL_VERIFYPEER = FALSE. |
|
1 пользователь поблагодарил pd за этот пост.
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 07.12.2020(UTC) Сообщений: 13 Сказал(а) «Спасибо»: 3 раз
|
Использую курл. Мне помогла опция CURLOPT_SSL_VERIFYHOST - false, CURLOPT_SSL_VERIFYPEER как я понял совсем отключает проверку сертификата. Все хорошо, но смутило вот такой момент: в ЖТЯИ.00101-02 95 01, в таблице со списком команд указано что CURLOPT_SSL_VERIFYHOST и CURLOPT_SSL_VERIFYPEER использовать нельзя. То есть релизное приложение с этими опциями не пройдет сертификацию? Все же нужно будет переделывать сертификат с корректным именем хоста?
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close