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

Уведомление

Icon
Error

4 Страницы123>»
Опции
К последнему сообщению К первому непрочитанному
Offline SagitovaAR  
#1 Оставлено : 10 января 2013 г. 9:02:35(UTC)
SagitovaAR

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

Группы: Участники
Зарегистрирован: 10.01.2013(UTC)
Сообщений: 1

Мы не знаем как это реализовать, поэтому просим помощи, заранее благодарим.
Online Андрей Писарев  
#2 Оставлено : 11 января 2013 г. 0:49:41(UTC)
Андрей *

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

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 10,495
Мужчина
Российская Федерация

Сказал «Спасибо»: 385 раз
Поблагодарили: 1573 раз в 1211 постах
Автор: SagitovaAR Перейти к цитате
Мы не знаем как это реализовать, поэтому просим помощи, заранее благодарим.


Наверное так:
Использовать их совместно по назначению...

А что конкретно Вы не знаете осталось только догадываться...
Экстрасенсы в долгосрочном отпуске (на "битву" уехали) Anxious


Предположение:
скачивать периодически CRL с указанных url через cURL или что в задании "реализовать" у Вас?

Техническую поддержку оказываем тут
Наша база знаний
Offline NTMan  
#3 Оставлено : 18 февраля 2013 г. 20:52:18(UTC)
NTMan

Статус: Активный участник

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

Сказал(а) «Спасибо»: 6 раз
Поблагодарили: 1 раз в 1 постах
Наверно имелось в виду что человек незнает вообще с какой стороны подойти к КриптоПро CSP. Вот я прочитал документацию на сайте и мне тоже не сосем понятно. Задача обеспечить защищенное соединение с БКИ, c авторизацией по сертификату.

И так вопрос №1 какой продукт наиболее подходит, вроде как КриптоПро CSP далее читаю описание КриптоПро TLS тоже вроде подходит.

Далее читаю вот этот FAQ http://www.cryptopro.ru/...cs/admin_guide_linux.pdf

В FAQ dижу вот это:

Цитата:
5.1. Библиотека libcurl
Используется для передачи запросов на сертификаты, CRL и т.п. по сети.
С сайта разработчика проекта http://curl.haxx.se/ можно скачать пакет с исходными
текстами для самостоятельной сборки. Как правило, там же есть 32-битные версии бинарных
пакетов и иногда 64-битные.
Проще всего поставить библиотеку встроенным менеджером пакетов.
На ALTLinux, Debian, Ubuntu:ЖТЯИ.00050-03 90 02-02. СКЗИ "КриптоПро CSP ". Руководство администратора безопасности.
Использование СКЗИ под управлением ОС Linux
- 10 -
# apt-get install curl
На CentOS, Fedora, LinuxXP, RedHat:
# yum install curl
На SuSE:
# yast -i curl
После установки библиотек надо зарегистрировать пути к ним. Например:
# /opt/cprocsp/sbin/ia32/cpconfig -ini \config\apppath -add string libcurl.so
/usr/local/lib/libcurl.so
# /opt/cprocsp/sbin/amd64/cpconfig -ini \config\apppath -add string libcurl.so
/usr/local/lib/64/libcurl.so


и опять не понимаю, что я должен всетаки поставить/настроить/перекомпилировать чтобы curl начал использовать КриптоПРО. Из вот этого описания вообще кажетя что достаточно выполнить в консоли /opt/cprocsp/sbin/amd64/cpconfig -ini \config\apppath -add string libcurl.so чтобы все чудесным образом заработало. Так а какие пакеты вообще ставить ну кроме curl??? Это lsb-cprocsp-base-3.6.1-4.noarch.rpm достаточно или еще что-то надо устанавливать?

Отредактировано пользователем 18 февраля 2013 г. 20:57:24(UTC)  | Причина: Не указана

Offline NTMan  
#4 Оставлено : 10 марта 2013 г. 15:56:33(UTC)
NTMan

Статус: Активный участник

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

Сказал(а) «Спасибо»: 6 раз
Поблагодарили: 1 раз в 1 постах
Здесь вообще кто нибудь отвечает? Никто не дружил КриптоПРО и curl?
Offline Максим Коллегин  
#5 Оставлено : 10 марта 2013 г. 18:35:29(UTC)
Максим Коллегин

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

Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,067
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 17 раз
Поблагодарили: 606 раз в 541 постах
А что вы сделать пытаетесь? Использовать https c curl? У нас есть модифицированный curl. Входит в дистрибутив для Linux CSP 3.6 R3.
Знания в базе знаний, поддержка в техподдержке
Offline NTMan  
#6 Оставлено : 11 марта 2013 г. 1:09:08(UTC)
NTMan

Статус: Активный участник

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

Сказал(а) «Спасибо»: 6 раз
Поблагодарили: 1 раз в 1 постах
Можно поподробнее? я видел пакет cprocsp-curl-3.6.1-4.i486.rpm, но там библиотека имеет имя libcpcurl.so + cтавиться в каталог opt из чего следует, что она не может быть заменителем системной библиотеки curl. Да и версия пугает. У меня curl версии 7.27. Или у вас своя нумерация версий? Тогда какой версии curl соответствует ваш curl? Хорошо даже ели поставляемый curl не позиционируется как зменитель системного, а является самостоятельной библиотекой с API curl, то мне как разработчику он абсолютно бесполезен из за отсутствия devel пакета с нужными заголовочными файлами, чтоб я смог скомпилировать свое приложение, а также PHP/Python/Ruby/NodeJS итд с поддержкой вашего curl. В идеале всетаки лучше был бы patch фaйл который можно было бы наложить на любой современный curl и пересобрать системную библиотеку с поддержкой КриптоПРО тем самым все ПО завязанное на curl стало бы без перекомпиляции работать сертификатами КриптоПРО.
Offline Татьяна  
#7 Оставлено : 11 марта 2013 г. 10:56:49(UTC)
Татьяна

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

Группы: Участники
Зарегистрирован: 06.02.2008(UTC)
Сообщений: 1,491
Откуда: Крипто-Про

Поблагодарили: 40 раз в 37 постах
Здравствуйте.
Поясните, почему вы считаете, что раз библиотека имеет имя libcpcurl.so и cтавится в каталог opt, то из этого следует, что она не может быть заменителем системной библиотеки curl? Наши приложения собраны с родными заголовочными файлами curl (их мы не модифицировали) и могут пользоваться как системной библиотекой curl, так и нашей (это настраивается в config.ini в apppath, наше приложение берёт путь к библиотеке оттуда и открывает её с помощью dlopen). Не вижу причин почему ваше приложение не может работать так же. Если вам нужен не dlopen, а динамическая линковка, то можно использовать динамическую линковку. Наш curl сделан из библиотеки версии 7.21.3 .
Татьяна
ООО Крипто-Про
thanks 1 пользователь поблагодарил Татьяна за этот пост.
NTMan оставлено 14.03.2013(UTC)
Offline NTMan  
#8 Оставлено : 13 марта 2013 г. 8:01:50(UTC)
NTMan

Статус: Активный участник

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

Сказал(а) «Спасибо»: 6 раз
Поблагодарили: 1 раз в 1 постах
целая эпопея с подменой :)
Через LD_PRELOAD не получилось, прошлось делать симлинк с libcpcurl.so.4.2.0 на libcurl.so.3 и задавать LD_LIBRARY_PATH.

$ LD_LIBRARY_PATH=/opt/cprocsp/lib/amd64 ldd /usr/lib64/php/modules/curl.so
linux-vdso.so.1 => (0x00007fff4b730000)
libcurl.so.3 => /opt/cprocsp/lib/amd64/libcurl.so.3 (0x00002b08cf637000)
libdl.so.2 => /lib64/libdl.so.2 (0x00002b08cf798000)
libgssapi_krb5.so.2 => /usr/lib64/libgssapi_krb5.so.2 (0x00002b08cf99c000)
libkrb5.so.3 => /usr/lib64/libkrb5.so.3 (0x00002b08cfbca000)
libk5crypto.so.3 => /usr/lib64/libk5crypto.so.3 (0x00002b08cfe60000)
libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00002b08d0085000)
libidn.so.11 => /usr/lib64/libidn.so.11 (0x00002b08d0287000)
libssl.so.10 => /usr/lib64/libssl.so.10 (0x00002b08d04b9000)
libcrypto.so.10 => /lib64/libcrypto.so.10 (0x00002b08d0724000)
libz.so.1 => /lib64/libz.so.1 (0x00002b08d0b2a000)
libc.so.6 => /lib64/libc.so.6 (0x00002b08d0d3f000)
librt.so.1 => /lib64/librt.so.1 (0x00002b08d1098000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00002b08d12a1000)
libcapi20.so.4 => /opt/cprocsp/lib/amd64/libcapi20.so.4 (0x00002b08d14be000)
libssp.so.4 => /opt/cprocsp/lib/amd64/libssp.so.4 (0x00002b08d16c8000)
/lib64/ld-linux-x86-64.so.2 (0x0000003ead200000)
libkrb5support.so.0 => /usr/lib64/libkrb5support.so.0 (0x00002b08d1843000)
libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00002b08d1a4c000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x00002b08d1c4e000)
libcpext.so.4 => /opt/cprocsp/lib/amd64/libcpext.so.4 (0x00002b08d1e64000)
libcapi10.so.4 => /opt/cprocsp/lib/amd64/libcapi10.so.4 (0x00002b08d1fcf000)
librdrsup.so.4 => /opt/cprocsp/lib/amd64/librdrsup.so.4 (0x00002b08d20e3000)
libasn1data.so.4 => /opt/cprocsp/lib/amd64/libasn1data.so.4 (0x00002b08d220a000)
libpkivalidator.so.4 => /opt/cprocsp/lib/amd64/libpkivalidator.so.4 (0x00002b08d2968000)
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00002b08d2a90000)
libm.so.6 => /lib64/libm.so.6 (0x00002b08d2d91000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00002b08d3014000)
libcpalloc.so.0 => /opt/cprocsp/lib/amd64/libcpalloc.so.0 (0x00002b08d3222000)
libjemalloc.so.0 => /opt/cprocsp/lib/amd64/libjemalloc.so.0 (0x00002b08d3324000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00002b08d343d000)
libcplib.so.4 => /opt/cprocsp/lib/amd64/libcplib.so.4 (0x00002b08d3656000)
libocsp.so.4 => /opt/cprocsp/lib/amd64/libocsp.so.4 (0x00002b08d3766000)
libcpasn1.so.4 => /opt/cprocsp/lib/amd64/libcpasn1.so.4 (0x00002b08d38b2000)
libsepol.so.1 => /lib64/libsepol.so.1 (0x00002b08d3a2b000)

Пробую теперь разобраться с настройкой СКЗИ (с тем как задавать параментры для сертификата и ключей) в curl-е
Offline NTMan  
#9 Оставлено : 13 марта 2013 г. 8:24:24(UTC)
NTMan

Статус: Активный участник

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

Сказал(а) «Спасибо»: 6 раз
Поблагодарили: 1 раз в 1 постах
Нашел вот такую инструкцию по настройке КриптоПРО.

В curl есть два параметра CURLOPT_SSLCERT и CURLOPT_SSLKEY.
Что там прописывать? примеров использования curl в SDK нет.

Отредактировано пользователем 13 марта 2013 г. 10:20:31(UTC)  | Причина: Не указана

Offline NTMan  
#10 Оставлено : 13 марта 2013 г. 11:02:48(UTC)
NTMan

Статус: Активный участник

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

Сказал(а) «Спасибо»: 6 раз
Поблагодарили: 1 раз в 1 постах
Еще вопрос. Получается для каждого nix пользователя ключи и сертификаты отдельно надо прогружать?
Offline NTMan  
#11 Оставлено : 14 марта 2013 г. 12:40:39(UTC)
NTMan

Статус: Активный участник

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

Сказал(а) «Спасибо»: 6 раз
Поблагодарили: 1 раз в 1 постах
Похоже никто незнает как при использовании curl указывать каким сертификатом аутентифицироваться.
Offline Татьяна  
#12 Оставлено : 14 марта 2013 г. 15:10:46(UTC)
Татьяна

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

Группы: Участники
Зарегистрирован: 06.02.2008(UTC)
Сообщений: 1,491
Откуда: Крипто-Про

Поблагодарили: 40 раз в 37 постах
Автор: NTMan Перейти к цитате
целая эпопея с подменой :)
Через LD_PRELOAD не получилось, прошлось делать симлинк с libcpcurl.so.4.2.0 на libcurl.so.3 и задавать LD_LIBRARY_PATH.

$ LD_LIBRARY_PATH=/opt/cprocsp/lib/amd64 ldd /usr/lib64/php/modules/curl.so
linux-vdso.so.1 => (0x00007fff4b730000)
libcurl.so.3 => /opt/cprocsp/lib/amd64/libcurl.so.3 (0x00002b08cf637000)
libdl.so.2 => /lib64/libdl.so.2 (0x00002b08cf798000)
libgssapi_krb5.so.2 => /usr/lib64/libgssapi_krb5.so.2 (0x00002b08cf99c000)
libkrb5.so.3 => /usr/lib64/libkrb5.so.3 (0x00002b08cfbca000)
libk5crypto.so.3 => /usr/lib64/libk5crypto.so.3 (0x00002b08cfe60000)
libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00002b08d0085000)
libidn.so.11 => /usr/lib64/libidn.so.11 (0x00002b08d0287000)
libssl.so.10 => /usr/lib64/libssl.so.10 (0x00002b08d04b9000)
libcrypto.so.10 => /lib64/libcrypto.so.10 (0x00002b08d0724000)
libz.so.1 => /lib64/libz.so.1 (0x00002b08d0b2a000)
libc.so.6 => /lib64/libc.so.6 (0x00002b08d0d3f000)
librt.so.1 => /lib64/librt.so.1 (0x00002b08d1098000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00002b08d12a1000)
libcapi20.so.4 => /opt/cprocsp/lib/amd64/libcapi20.so.4 (0x00002b08d14be000)
libssp.so.4 => /opt/cprocsp/lib/amd64/libssp.so.4 (0x00002b08d16c8000)
/lib64/ld-linux-x86-64.so.2 (0x0000003ead200000)
libkrb5support.so.0 => /usr/lib64/libkrb5support.so.0 (0x00002b08d1843000)
libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00002b08d1a4c000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x00002b08d1c4e000)
libcpext.so.4 => /opt/cprocsp/lib/amd64/libcpext.so.4 (0x00002b08d1e64000)
libcapi10.so.4 => /opt/cprocsp/lib/amd64/libcapi10.so.4 (0x00002b08d1fcf000)
librdrsup.so.4 => /opt/cprocsp/lib/amd64/librdrsup.so.4 (0x00002b08d20e3000)
libasn1data.so.4 => /opt/cprocsp/lib/amd64/libasn1data.so.4 (0x00002b08d220a000)
libpkivalidator.so.4 => /opt/cprocsp/lib/amd64/libpkivalidator.so.4 (0x00002b08d2968000)
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00002b08d2a90000)
libm.so.6 => /lib64/libm.so.6 (0x00002b08d2d91000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00002b08d3014000)
libcpalloc.so.0 => /opt/cprocsp/lib/amd64/libcpalloc.so.0 (0x00002b08d3222000)
libjemalloc.so.0 => /opt/cprocsp/lib/amd64/libjemalloc.so.0 (0x00002b08d3324000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00002b08d343d000)
libcplib.so.4 => /opt/cprocsp/lib/amd64/libcplib.so.4 (0x00002b08d3656000)
libocsp.so.4 => /opt/cprocsp/lib/amd64/libocsp.so.4 (0x00002b08d3766000)
libcpasn1.so.4 => /opt/cprocsp/lib/amd64/libcpasn1.so.4 (0x00002b08d38b2000)
libsepol.so.1 => /lib64/libsepol.so.1 (0x00002b08d3a2b000)

Пробую теперь разобраться с настройкой СКЗИ (с тем как задавать параментры для сертификата и ключей) в curl-е


зачем вам LD_PRELOAD и подмена? Есть два простых способа использования библиотеки:
1. в тексте вашей программы открыть библиотеку при помощи dlopen, заполнить таблицу функций функциями из библиотеки (curl_global_init, curl_global_cleanup, curl_easy_init, curl_easy_cleanup, curl_easy_getinfo, curl_easy_setopt, curl_easy_perform, curl_formadd, curl_formfree, curl_slist_free_all, curl_slist_append), использовать эти функции.
2. слинковаться сразу с нашей библиотекой (в опциях линкера указать -L/opt/cprocsp/lib/<архитектура>/ -lcpcurl)

С этими способами что-то не так?

По поводу опций выбора сертификата: curl можно передать thumbprint клиентского сертфиката, делается это так:
Код:

    //если хранилище пользователя, то "CERT_SHA1_HASH_PROP_ID:CERT_SYSTEM_STORE_CURRENT_USER:MY"
    code = curl_global_handle.curl_easy_setopt( h.handle, CURLOPT_SSLCERTTYPE, "CERT_SHA1_HASH_PROP_ID:CERT_SYSTEM_STORE_LOCAL_MACHINE:MY");
    if( code != CURLE_OK )
        goto fin;
	    
    code = curl_global_handle.curl_easy_setopt( h.handle, CURLOPT_SSLCERT, thumbprint.c_str() );
    if( code != CURLE_OK )
        goto fin;
Татьяна
ООО Крипто-Про
thanks 1 пользователь поблагодарил Татьяна за этот пост.
NTMan оставлено 14.03.2013(UTC)
Offline Татьяна  
#13 Оставлено : 14 марта 2013 г. 15:13:25(UTC)
Татьяна

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

Группы: Участники
Зарегистрирован: 06.02.2008(UTC)
Сообщений: 1,491
Откуда: Крипто-Про

Поблагодарили: 40 раз в 37 постах
Автор: NTMan Перейти к цитате
Еще вопрос. Получается для каждого nix пользователя ключи и сертификаты отдельно надо прогружать?


Поясните пожалуйста, что вы имеете в виду. Вы не можете в рамках одной установленной TLS сессии использовать сразу два клиентских сертификата, поэтому мне не понятно что такое "не отдельно".
Татьяна
ООО Крипто-Про
Offline NTMan  
#14 Оставлено : 14 марта 2013 г. 15:19:21(UTC)
NTMan

Статус: Активный участник

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

Сказал(а) «Спасибо»: 6 раз
Поблагодарили: 1 раз в 1 постах
Автор: Татьяна Перейти к цитате
Поясните пожалуйста, что вы имеете в виду. Вы не можете в рамках одной установленной TLS сессии использовать сразу два клиентских сертификата, поэтому мне не понятно что такое "не отдельно".


Нет, имелось в виду что у каждого nix пользователя свое хранилище сертификатов. А можно сделать общее для всех пользователей?
Offline Татьяна  
#15 Оставлено : 14 марта 2013 г. 15:25:01(UTC)
Татьяна

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

Группы: Участники
Зарегистрирован: 06.02.2008(UTC)
Сообщений: 1,491
Откуда: Крипто-Про

Поблагодарили: 40 раз в 37 постах
Автор: NTMan Перейти к цитате
Автор: Татьяна Перейти к цитате
Поясните пожалуйста, что вы имеете в виду. Вы не можете в рамках одной установленной TLS сессии использовать сразу два клиентских сертификата, поэтому мне не понятно что такое "не отдельно".


Нет, имелось в виду что у каждого nix пользователя свое хранилище сертификатов. А можно сделать общее для всех пользователей?


Если вам нужно разграничение доступа к сертификатам пользователей -- надо хранить все сертификаты в разных хранилищах(каждый сертификат в хранилище своего пользователя), тогда только пользователь-владелец будет иметь доступ к его сертификату. Если не нужно разграничение доступа -- поставьте все сертификаты в хранилище компьютера или выберите специального пользователя, к которому вы поставите все сертификаты. Очевидно, нельзя сделать так, чтобы разграничение доступа было, но при этом курл, запущенный от имени одного из пользователей, имел доступ к любым сертификатам.

Отредактировано пользователем 14 марта 2013 г. 15:28:00(UTC)  | Причина: запятую забыла:)

Татьяна
ООО Крипто-Про
thanks 1 пользователь поблагодарил Татьяна за этот пост.
NTMan оставлено 14.03.2013(UTC)
Offline NTMan  
#16 Оставлено : 14 марта 2013 г. 15:34:48(UTC)
NTMan

Статус: Активный участник

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

Сказал(а) «Спасибо»: 6 раз
Поблагодарили: 1 раз в 1 постах
Опытным путем было установленно, что thumbprint это SHA1 Hash. :)

А как поставить все сертификаты в хранилище компьютера?
У меня в папке /var/opt/cprocsp/keys только пользовательские папки.


Да кстати большое спасибо, curl работает!

По поводу

Автор: Татьяна Перейти к цитате

зачем вам LD_PRELOAD и подмена? Есть два простых способа использования библиотеки:
1. в тексте вашей программы открыть библиотеку при помощи dlopen, заполнить таблицу функций функциями из библиотеки (curl_global_init, curl_global_cleanup, curl_easy_init, curl_easy_cleanup, curl_easy_getinfo, curl_easy_setopt, curl_easy_perform, curl_formadd, curl_formfree, curl_slist_free_all, curl_slist_append), использовать эти функции.
2. слинковаться сразу с нашей библиотекой (в опциях линкера указать -L/opt/cprocsp/lib/<архитектура>/ -lcpcurl)


это все конечно можно, но сейчас у меня была задача, чтобы это все работало в не кастомизированной сборке php, позже, возможно я вернусь к вопросу, чтобы создать патчь и протолкнуть его в апстрим.

Если интерсно вот пример на PHP для включение в ваше SDK

Код:
$ch = curl_init($address);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);

curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,0);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,0);

curl_setopt($ch, CURLOPT_SSLCERTTYPE, 'CERT_SHA1_HASH_PROP_ID:CERT_SYSTEM_STORE_CURRENT_USER:MY');
//curl_setopt($ch, CURLOPT_SSLCERTTYPE, 'CERT_SHA1_HASH_PROP_ID:CERT_SYSTEM_STORE_LOCAL_MACHINE:MY');
curl_setopt($ch, CURLOPT_SSLCERT, '53be6850031bf03bff056fd5215a46c07b2248d6');
if(isset($proxy)) curl_setopt($ch, CURLOPT_PROXY, $proxy);
$response = curl_exec($ch);
echo 'Error code: ' . curl_errno ($ch)."\n";
echo 'Curl error: ' . curl_error($ch)."\n";

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

Offline NTMan  
#17 Оставлено : 15 марта 2013 г. 6:46:37(UTC)
NTMan

Статус: Активный участник

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

Сказал(а) «Спасибо»: 6 раз
Поблагодарили: 1 раз в 1 постах
Еще два вопроса в догонку:

1. Устанавливать сертификаты в хранилище компьютера может только root? Если это так, то можно ли сделать, чтобы это мог делать какойнибудь не привелигированный пользователь?

2. Как я понимю, если будет обновление сертификатов, то у новых сертификатов измениться thumbprint и придется вновить изменения еще и в настройки программы. Можно ли организвать выборку сертификата по какому либо не изменяемому параметру? Например по email на который сертификат выдан, с целью максимальной прозрачности процесса обновления сертификатов от сопровождения программы.
Offline Татьяна  
#18 Оставлено : 15 марта 2013 г. 16:50:23(UTC)
Татьяна

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

Группы: Участники
Зарегистрирован: 06.02.2008(UTC)
Сообщений: 1,491
Откуда: Крипто-Про

Поблагодарили: 40 раз в 37 постах
Автор: NTMan Перейти к цитате
Еще два вопроса в догонку:

1. Устанавливать сертификаты в хранилище компьютера может только root? Если это так, то можно ли сделать, чтобы это мог делать какойнибудь не привелигированный пользователь?

Можно вручную дать права пользователю на запись в хранилища (/var/opt/cprocsp/users/stores/) и в ключи (/var/opt/cprocsp/keys/), но с точки зрения безопасности это то же самое, что поставить сертификаты в хранилище этого пользователя. Поэтому я бы рекомендовала не трогать настройки прав, а ставить всё в хранилище нужного вам пользователя.

Автор: NTMan Перейти к цитате

2. Как я понимю, если будет обновление сертификатов, то у новых сертификатов измениться thumbprint и придется вновить изменения еще и в настройки программы. Можно ли организвать выборку сертификата по какому либо не изменяемому параметру? Например по email на который сертификат выдан, с целью максимальной прозрачности процесса обновления сертификатов от сопровождения программы.

Тут возникает ряд вопросов. Thimbprint -- уникальная характеристика сертификата. А сертификатов с одним и тем же адресом электронной почты может стоять десяток. Какой из них выбрать?
Вы можете написать код, который будет реализовывать вашу логику выбора сертификата, получать его thumbprint и отдавать курлу. Есть много способов получения thumbprint -- от вызовов CAPILite до парсинга вывода утилиты certmgr или openssl.
Татьяна
ООО Крипто-Про
Offline NTMan  
#19 Оставлено : 15 марта 2013 г. 17:14:46(UTC)
NTMan

Статус: Активный участник

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

Сказал(а) «Спасибо»: 6 раз
Поблагодарили: 1 раз в 1 постах
Я так и не понял как ставить сертификаты в хранилище компьютера.
Для пользователя я делал так:
1. копировал ключи в папку /var/opt/cprocsp/keys/%логин_пользователя%
2. потом узнавал id хранилища /opt/cprocsp/bin/amd64/csptest -keyset -enum_cont -fqcn -verifyc
3. затем добавлял сертификат в хранилище /opt/cprocsp/bin/amd64/certmgr -inst -cont '\\.\HDIMAGE\%id_хранилища%' -file ИМЯ_ФАЙЛА_СЕРТИФИКАТА.cer '\\.\HDIMAGE\%id_хранилища%'
4. ставил crl сертификат
certmgr -inst -crl -store ca -file %путь_к_файлу%
5. затем ставил корневые сертификаты
certmgr -inst -store root -file cacer.p7b

Как произвести установку в хранилище компьютера даже не представляю.

Автор: Татьяна Перейти к цитате
Тут возникает ряд вопросов. Thimbprint -- уникальная характеристика сертификата. А сертификатов с одним и тем же адресом электронной почты может стоять десяток. Какой из них выбрать?
Вы можете написать код, который будет реализовывать вашу логику выбора сертификата, получать его thumbprint и отдавать курлу. Есть много способов получения thumbprint -- от вызовов CAPILite до парсинга вывода утилиты certmgr или openssl.

Если я писал бы логику я б взял первый действующий, как вариант, раз указывается характеристика не позволяющая однозначно идентифицировать конечный сертификат.
Offline Татьяна  
#20 Отправлено: : 15 марта 2013 г. 17:24:00(UTC)
Татьяна

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

Группы: Участники
Зарегистрирован: 06.02.2008(UTC)
Сообщений: 1,491
Откуда: Крипто-Про

Поблагодарили: 40 раз в 37 постах
Автор: NTMan Перейти к цитате
Я так и не понял как ставить сертификаты в хранилище компьютера.
Для пользователя я делал так:
1. копировал ключи в папку /var/opt/cprocsp/keys/%логин_пользователя%
2. потом узнавал id хранилища /opt/cprocsp/bin/amd64/csptest -keyset -enum_cont -fqcn -verifyc
3. затем добавлял сертификат в хранилище /opt/cprocsp/bin/amd64/certmgr -inst -cont '\\.\HDIMAGE\%id_хранилища%' -file ИМЯ_ФАЙЛА_СЕРТИФИКАТА.cer '\\.\HDIMAGE\%id_хранилища%'
4. ставил crl сертификат
certmgr -inst -crl -store ca -file %путь_к_файлу%
5. затем ставил корневые сертификаты
certmgr -inst -store root -file cacer.p7b

Как произвести установку в хранилище компьютера даже не представляю.


Я бы всё-таки рекомендовала использовать хранилища специального пользователя, если нужно всё делать под специальным пользователем.
В хранилище компьютера сертификат ставят почти так же:

1. скопировать ключи в папку /var/opt/cprocsp/keys/ без логина пользователя
2. потом узнать id контейнера /opt/cprocsp/bin/amd64/csptest -keyset -enum_cont -fqcn -verifyc -machinekeys
3. затем добить сертификат в хранилище /opt/cprocsp/bin/amd64/certmgr -inst -cont '\\.\HDIMAGE\%id_контейнера%' -file ИМЯ_ФАЙЛА_СЕРТИФИКАТА.cer -store mmy
4. поставить crl сертификат
certmgr -inst -crl -store ca -file %путь_к_файлу%
5. затем поставить корневые сертификаты
certmgr -inst -store root -file cacer.p7b
Татьяна
ООО Крипто-Про
thanks 1 пользователь поблагодарил Татьяна за этот пост.
NTMan оставлено 15.03.2013(UTC)
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
4 Страницы123>»
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.