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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline AndreyFrolandy  
#1 Оставлено : 1 августа 2022 г. 18:23:05(UTC)
AndreyFrolandy

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

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

Здравствуйте, не могли бы подсказать как правильно использовать curl в iOS вместе с библиотекой CSP?
У нас есть файл расширения cer от нашего сервера, который нужно использовать для подключения по ГОСТ TLS.
Я скачал пример SimpleHttpsSample и пытаюсь с помощью него сделать запросы на наш сервер, для сертификатов я нашел параметры CURLOPT_SSLCERT и CURLOPT_SSLCERTTYPE, но я получаю ошибку сертификата, на сколько я понял типа CER нет у CURLOPT_SSLCERTTYPE.
Может есть какой то пример подключения сертификата? В идеале просто передать путь до файла.

Отредактировано пользователем 2 августа 2022 г. 14:34:57(UTC)  | Причина: Не указана

Offline Андрей Русев  
#2 Оставлено : 2 августа 2022 г. 16:09:46(UTC)
Русев Андрей

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

Группы: Администраторы, Участники
Зарегистрирован: 16.04.2008(UTC)
Сообщений: 1,568

Сказал(а) «Спасибо»: 44 раз
Поблагодарили: 656 раз в 453 постах
Здравствуйте.
Надо задавать отпечаток сертификата, установленного в личное хранилище со ссылкой на закрытый ключ (это важно!). В духе:
Код:
code = curl_easy_setopt(curlHandle, CURLOPT_SSLCERTTYPE, "CERT_SHA1_HASH_PROP_ID:CERT_SYSTEM_STORE_CURRENT_USER:MY");
if (code != CURLE_OK)
    goto fin;
code = curl_easy_setopt(curlHandle, CURLOPT_SSLCERT, "727C1E1EA2B397CBC5D00712E2EF2CE2C876BD7E"));
if (code != CURLE_OK)
    goto fin;
Официальная техподдержка. Официальная база знаний.
Offline AndreyFrolandy  
#3 Оставлено : 2 августа 2022 г. 16:25:17(UTC)
AndreyFrolandy

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

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

Спасибо, а где нибудь есть описание как можно добавить сертификаты в личное хранилище? Например я хочу протестировать доступ к https://tlsgost-512.cryptopro.ru/.
Offline Андрей Русев  
#4 Оставлено : 2 августа 2022 г. 16:37:58(UTC)
Русев Андрей

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

Группы: Администраторы, Участники
Зарегистрирован: 16.04.2008(UTC)
Сообщений: 1,568

Сказал(а) «Спасибо»: 44 раз
Поблагодарили: 656 раз в 453 постах
Самое простое - это воспользоваться нашей панелью управления - она умеет запрашивать сертификаты в том числе на тестовых УЦ, они сразу будут установлены в личное хранилище со ссылкой на закрытый ключ. Пример работы в демо-проекте CreateFile из состава нашего фреймворка, см. PaneViewController. А вообще это делается с помощью CertSetCertificateContextProperty(CERT_KEY_PROV_INFO_PROP_ID).
Официальная техподдержка. Официальная база знаний.
Offline AndreyFrolandy  
#5 Оставлено : 4 августа 2022 г. 12:55:25(UTC)
AndreyFrolandy

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

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

Спасибо. В целом логика работы понятна. Нужно добавить сертификат в хранилище и привязать его к ключу. Я правильно понял, что речь идет про ключ контейнера? У нас стоит задача реализовать подключение сертификата вручную, то есть без использования PaneViewController. Если речь идет про ключ контейнера, то для реализации пока нет понимания кто и когда создает контейнер и как получить информацию о контейнере, который необходимо привязать к сертификату с помощью вызова CertSetCertificateContextProperty. Не могли бы подсказать по этим двум моментам? (кто и когда создает контейнер и как получить по нему информацию). На сколько я понял тут нужно просто правильно заполнить структуру CRYPT_KEY_PROV_INFO.

P.S. При попытки добавить сертификат в root хранилище, библиотека пытается выкинуть алерт с помощью UIAlertView. Этот класс deprecated c 9 iOS. Соответсвенно это крашит приложение при каждой попытки библиотеки вызвать алерт с ошибкой "UIAlertView is deprecated and unavailable for UIScene based applications, please use UIAlertController!".

Отредактировано пользователем 4 августа 2022 г. 13:08:25(UTC)  | Причина: Не указана

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