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

Уведомление

Icon
Error

8 Страницы«<34567>»
Опции
К последнему сообщению К первому непрочитанному
Offline NewUser  
#41 Оставлено : 30 декабря 2014 г. 19:11:58(UTC)
NewUser

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

Группы: Участники
Зарегистрирован: 21.12.2014(UTC)
Сообщений: 5
Откуда: Msk

Вот такой скрипт:
Код:
<?php
$address = 'https://cryptopro.ru:5555/ui/';
$ch = curl_init($address);
$xml ='';
curl_setopt($ch, CURLOPT_URL, $address);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_SSLENGINE,'gost');
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/5.0)");
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_LOCAL_MACHINE');
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, '0xba642ca84ba6c7b1ca9008a0899aaaa01c1d19a7');

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";
?>


выдает вот что:
Цитата:

# php inf.php
Error code: 58
Curl error: Problem with the local SSL certificate


Код:
# ldd /usr/lib64/php/modules/curl.so
        linux-vdso.so.1 =>  (0x00007fff8f7fe000)
        libcurl.so.4 => //opt/cprocsp/lib/amd64/libcurl.so.4 (0x00007f48b33fa000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f48b3052000)
        libidn.so.11 => /lib64/libidn.so.11 (0x00007f48b2e20000)
        librt.so.1 => /lib64/librt.so.1 (0x00007f48b2c18000)
        libz.so.1 => /lib64/libz.so.1 (0x00007f48b2a01000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f48b27e4000)
        libcapi20.so.4 => //opt/cprocsp/lib/amd64/libcapi20.so.4 (0x00007f48b25cf000)
        libssp.so.4 => //opt/cprocsp/lib/amd64/libssp.so.4 (0x00007f48b244b000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f48b375b000)
        libcpext.so.4 => //opt/cprocsp/lib/amd64/libcpext.so.4 (0x00007f48b22e3000)
        libcapi10.so.4 => //opt/cprocsp/lib/amd64/libcapi10.so.4 (0x00007f48b21ce000)
        liburlretrieve.so.4 => //opt/cprocsp/lib/amd64/liburlretrieve.so.4 (0x00007f48b20ca000)
        librdrsup.so.4 => //opt/cprocsp/lib/amd64/librdrsup.so.4 (0x00007f48b1fa4000)
        libasn1data.so.4 => //opt/cprocsp/lib/amd64/libasn1data.so.4 (0x00007f48b1840000)
        libpkivalidator.so.4 => //opt/cprocsp/lib/amd64/libpkivalidator.so.4 (0x00007f48b1717000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007f48b1513000)
        libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007f48b120d000)
        libm.so.6 => /lib64/libm.so.6 (0x00007f48b0f88000)
        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f48b0d72000)
        libcpalloc.so.0 => //opt/cprocsp/lib/amd64/libcpalloc.so.0 (0x00007f48b0c71000)
        libjemalloc.so.0 => //opt/cprocsp/lib/amd64/libjemalloc.so.0 (0x00007f48b0b57000)
        libcplib.so.4 => //opt/cprocsp/lib/amd64/libcplib.so.4 (0x00007f48b0a47000)
        libocsp.so.4 => //opt/cprocsp/lib/amd64/libocsp.so.4 (0x00007f48b08f8000)
        libcpasn1.so.4 => //opt/cprocsp/lib/amd64/libcpasn1.so.4 (0x00007f48b077f000)


Что я делаю не так?
Offline Hayate  
#42 Оставлено : 18 мая 2015 г. 11:57:06(UTC)
Hayate

Статус: Участник

Группы: Участники
Зарегистрирован: 22.09.2014(UTC)
Сообщений: 16
Андорра
Откуда: Fyljhhf

Сказал(а) «Спасибо»: 1 раз
Автор: Татьяна Перейти к цитате

В хранилище компьютера сертификат ставят почти так же:

1. скопировать ключи в папку /var/opt/cprocsp/keys/ без логина пользователя


Ещё момент: сейчас с одним сертификатом всё работает, то тестовый сертификат. Нынче нам вручили сертификат для продакшена, но и тестирование тоже всё ещё требуется.
Список из шести ключей туда кладётся без всякой вложенности? Для тестового сертификата это было сделано так и всё работает. А если добавить туда продакшен-сертификат и нужно скопировать новые ключи, то они перезапишут старые? Как поместить в хранилище машины больше одного сертификата?

Offline Hayate  
#43 Оставлено : 19 мая 2015 г. 7:33:46(UTC)
Hayate

Статус: Участник

Группы: Участники
Зарегистрирован: 22.09.2014(UTC)
Сообщений: 16
Андорра
Откуда: Fyljhhf

Сказал(а) «Спасибо»: 1 раз
А если контейнер создавался с паролем, каким параметром нужно указывать пароль?
CURLOPT_KEYPASSWD, CURLOPT_SSLCERTPASSWD, CURLOPT_SSLKEYPASSWD не подходят. Если запускать php скрипт руками, то пароль принимает, то есть в принципе всё рабочее. Просто не ясно где пароль указать.
Offline Hayate  
#44 Оставлено : 9 июля 2015 г. 7:16:18(UTC)
Hayate

Статус: Участник

Группы: Участники
Зарегистрирован: 22.09.2014(UTC)
Сообщений: 16
Андорра
Откуда: Fyljhhf

Сказал(а) «Спасибо»: 1 раз
Как я погляжу жизнь тут прям бурлит и сделать запрос курлом уже давно стало легко и просто.

Ещё такой момент, почему после установки на новый сервер (FreeBSD 9.3-RELEASE-p5) при попытке сделать запрос курлом выдаётся ошибка:
Код:
>LD_LIBRARY_PATH=/opt/cprocsp/lib/amd64 /usr/local/bin/php some_php_command.php
Segmentation fault: 11


Код:
>LD_LIBRARY_PATH=/opt/cprocsp/lib/amd64 ldd /usr/local/lib/php/20131226/curl.so 
/usr/local/lib/php/20131226/curl.so:
	libcurl.so.4 => /opt/cprocsp/lib/amd64/libcurl.so.4 (0x80063b000)
	libc.so.7 => /lib/libc.so.7 (0x80081b000)
	libz.so.5 => /usr/local/lib/compat/libz.so.5 (0x801215000)
	libssp.so.4 => /opt/cprocsp/lib/amd64/libssp.so.4 (0x80132a000)
	libcapi20.so.4 => /opt/cprocsp/lib/amd64/libcapi20.so.4 (0x8014ca000)
	liburlretrieve.so.4 => /opt/cprocsp/lib/amd64/liburlretrieve.so.4 (0x8016c9000)
	libasn1data.so.4 => /opt/cprocsp/lib/amd64/libasn1data.so.4 (0x8017ce000)
	libpkivalidator.so.4 => /opt/cprocsp/lib/amd64/libpkivalidator.so.4 (0x801eee000)
	libcplib.so.4 => /opt/cprocsp/lib/amd64/libcplib.so.4 (0x802017000)
	libocsp.so.4 => /opt/cprocsp/lib/amd64/libocsp.so.4 (0x802127000)
	libcpasn1.so.4 => /opt/cprocsp/lib/amd64/libcpasn1.so.4 (0x80226e000)
	libcpext.so.4 => /opt/cprocsp/lib/amd64/libcpext.so.4 (0x8023e3000)
	libcapi10.so.4 => /opt/cprocsp/lib/amd64/libcapi10.so.4 (0x80254c000)
	librdrsup.so.4 => /opt/cprocsp/lib/amd64/librdrsup.so.4 (0x802661000)
	libiconv.so.3 => /usr/local/lib/libiconv.so.3 (0x802787000)
	libcpalloc.so.0 => /opt/cprocsp/lib/amd64/libcpalloc.so.0 (0x802a83000)
	libjemalloc.so.0 => /opt/cprocsp/lib/amd64/libjemalloc.so.0 (0x802b84000)
	libthr.so.3 => /lib/libthr.so.3 (0x802c9c000)
	libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x802ebf000)
	libm.so.5 => /lib/libm.so.5 (0x8031c6000)
	libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x8033e7000)


/opt/cprocsp/lib/amd64/libcurl.so.4 это ссылка на библиотеку криптопро:
Цитата:
libcurl.so.4 -> libcpcurl.so.6


Может есть какие дампы, логи, которые можно было прочесть и понять что не так?

Нет ли планов вообще взять и модуль для пхп и прочих экосистем написать? Чтобы можно было сделать apt-get или yum install php5-cpcurl и потом по-человечески им пользоваться?

Отредактировано пользователем 9 июля 2015 г. 7:17:10(UTC)  | Причина: Не указана

Offline Hayate  
#45 Оставлено : 10 июля 2015 г. 7:59:39(UTC)
Hayate

Статус: Участник

Группы: Участники
Зарегистрирован: 22.09.2014(UTC)
Сообщений: 16
Андорра
Откуда: Fyljhhf

Сказал(а) «Спасибо»: 1 раз
А консольным курлом как пользоваться?
> ./curl https://url.com --cert-type CERT_SHA1_HASH_PROP_ID:CERT_SYSTEM_STORE_LOCAL_MACHINE --cert fingerprint
curl: (58) Problem with the local SSL certificate

Это на той из машин где курл с подгрузкой нормально работает.
Offline Русев Андрей  
#46 Оставлено : 10 июля 2015 г. 13:42:07(UTC)
Русев Андрей

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

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

Сказал(а) «Спасибо»: 22 раз
Поблагодарили: 445 раз в 324 постах
В консоли можно пользоваться нашим бинарником:
Код:

/opt/cprocsp/bin/amd64/curl


Проблема "Problem with the local SSL certificate" можно быть по трём причинам:

  • вы неверно указали sha1 hash сертификата. Узнать его можно с помощью certmgr:
    Код:
    
    [root@test-x64-fb92 ~]# /opt/cprocsp/bin/amd64/certmgr -list -store umy -dn cln512b
    Certmgr 1.0 (debug version) (c) "CryptoPro",  2007-2010.
    program for managing certificates, CRLs and stores
    
    =============================================================================
    1-------
    Issuer              : DC=ru, DC=cp, CN=test-ca
    Subject             : CN=cln512b, E=cln512b@cryptopro.ru
    Serial              : 0x181FF11B0000004DBBB2
    SHA1 Hash           : 0xdd55ac7b0472653453128cb93dfcb5c03a6650d5
    Signature Algorithm : ГОСТ Р 34.11/34.10-2001
    PublicKey Algorithm : ГОСТ Р 34.10-2001 (512 bits)
    Not valid before    : 09/07/2015  19:20:30 UTC
    Not valid after     : 10/07/2025  02:00:30 UTC
    PrivateKey Link     : Yes
    Container           : HDIMAGE\\cln512b
    Provider Name       : Crypto-Pro GOST R 34.10-2001 KC2 CSP
    Provider Info       : ProvType: 75, KeySpec: 1, Flags: 0x0
    Extended Key Usage  : 1.3.6.1.5.5.7.3.2
    =============================================================================
    

    Надо отбросить 0x и команда будет:
    Код:
    
    /opt/cprocsp/bin/amd64/curl https://ref-x86-xp:443/allow.htm --output /usr/rtests/data/allow.htm --cert dd55ac7b0472653453128cb93dfcb5c03a6650d5
    

  • в указанном сертификате в хранилище неправильная ссылка на закрытый ключ, в предыдущем выводе это:
    Код:
    
    PrivateKey Link     : Yes
    Container           : HDIMAGE\\cln512b
    Provider Name       : Crypto-Pro GOST R 34.10-2001 KC2 CSP
    Provider Info       : ProvType: 75, KeySpec: 1, Flags: 0x0
    

    проверить правильность ссылки можно так:
    Код:
    
    [root@test-x64-fb92 ~]# /opt/cprocsp/bin/amd64/cryptcp -sign -thumbprint dd55ac7b0472653453128cb93dfcb5c03a6650d5 /tmp/test.test
    CryptCP 4.0 (Debug version) (c) "Crypto-Pro", 2002-2015.
    Command prompt Utility for file signature and encryption.
    Parameters: -sign -thumbprint dd55ac7b0472653453128cb93dfcb5c03a6650d5 /tmp/config.ini
    
    The following certificate will be used:
    RDN:cln512b@cryptopro.ru, cln512b
    Valid from 09.07.2015 19:20:30 to 10.07.2025 02:00:30
    
    Certificate chains are checked.
    Folder '/tmp/':
    /tmp/test.test... Signing the data...
    Signed message is created.
    [ErrorCode: 0x00000000]
    

  • на контейнер ключа установлен пароль (тогда предыдущая команда - cryptcp может не сработать без указания -pin YOUR_PASS) и во флагах ссылки на закрытый (см. строку Provider Info) ключ стоит CRYPT_SILENT (0x00000040)
  • сертификат не нравится curl-у. Можно попробовать воспользоваться ключом "--insecure". К чему он придирается, сходу не видно. Разберёмся.


Поддержки PIN-ов в коде нашего curl-а пока нет. Добавим. Есть возможность сохранения PIN-ов в атрибуты ссылки на закрытый ключ, но у меня сходу это не заработало. Посмотрим.
Официальная техподдержка. Официальная база знаний.
thanks 1 пользователь поблагодарил Русев Андрей за этот пост.
Hayate оставлено 10.07.2015(UTC)
Offline NTMan  
#47 Оставлено : 16 сентября 2015 г. 23:55:24(UTC)
NTMan

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

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

Сказал(а) «Спасибо»: 6 раз
Поблагодарили: 1 раз в 1 постах
Автор: olin Перейти к цитате
Поддержки PIN-ов в коде нашего curl-а пока нет. Добавим. Есть возможность сохранения PIN-ов в атрибуты ссылки на закрытый ключ, но у меня сходу это не заработало. Посмотрим.


Когда пларируется поддержка pin в curl?
Сейчас пробую КриптоПро CSP 4.0 а воз и ны не там.
Если -pin не задан то вываливает ввод пароля:

Код:
$ /opt/cprocsp/bin/amd64/cryptcp -sign -thumbprint 47f0891ef1fb85aa7bb40f97ccfcfbb3a118e749 /tmp/test.test
CryptCP 4.0 (c) "Crypto-Pro", 2002-2015.
Command prompt Utility for file signature and encryption.

The following certificate will be used:
RDN:Тестовый НБКИ - 2014-15, 0101BB, ОАО Тестбанк, Город, Регион, RU, support@nbki.ru
Valid from 02.10.2014 13:01:00 to 02.01.2016 13:11:00

Certificate chains are checked.
Folder '/tmp/':
/tmp/test.test... Signing the data...100%CryptoPro CSP: Type password for container "TEST1415"
Password:

причем даже если вводишь пароль правильно, КриптоПро его не принимает

Отредактировано пользователем 16 сентября 2015 г. 23:57:13(UTC)  | Причина: Не указана

Offline Максим Коллегин  
#48 Оставлено : 17 сентября 2015 г. 8:16:07(UTC)
Максим Коллегин

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

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

Сказал «Спасибо»: 32 раз
Поблагодарили: 706 раз в 614 постах
Не работает запрос пин-кода в cryptcp? Какая ОС, какая версия CSP?
Знания в базе знаний, поддержка в техподдержке
Offline NTMan  
#49 Оставлено : 17 сентября 2015 г. 10:15:09(UTC)
NTMan

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

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

Сказал(а) «Спасибо»: 6 раз
Поблагодарили: 1 раз в 1 постах
Автор: maxdm Перейти к цитате
Не работает запрос пин-кода в cryptcp? Какая ОС, какая версия CSP?


Если -pin указать через ключ то все работает

Код:
$ /opt/cprocsp/bin/amd64/cryptcp -sign -thumbprint 47f0891ef1fb85aa7bb40f97ccfcfbb3a118e749 /tmp/test.test -pin 111
CryptCP 4.0 (c) "Crypto-Pro", 2002-2015.
Command prompt Utility for file signature and encryption.

The following certificate will be used:
RDN:Тестовый НБКИ - 2014-15, 0101BB, ОАО Тестбанк, Город, Регион, RU, support@nbki.ru
Valid from 02.10.2014 13:01:00 to 02.01.2016 13:11:00

Certificate chains are checked.
Folder '/tmp/':
/tmp/test.test... Signing the data...    
    
Signed message is created.
[ReturnCode: 0]



Если пин не указывать вываливается интерактивный запрос пароля, который не работает:
Код:
$ /opt/cprocsp/bin/amd64/cryptcp -sign -thumbprint 47f0891ef1fb85aa7bb40f97ccfcfbb3a118e749 /tmp/test.test
CryptCP 4.0 (c) "Crypto-Pro", 2002-2015.
Command prompt Utility for file signature and encryption.

The following certificate will be used:
RDN:Тестовый НБКИ - 2014-15, 0101BB, ОАО Тестбанк, Город, Регион, RU, support@nbki.ru
Valid from 02.10.2014 13:01:00 to 02.01.2016 13:11:00

Certificate chains are checked.
Folder '/tmp/':
/tmp/test.test... Signing the data...100%CryptoPro CSP: Type password for container "TEST1415"
Password:
Wrong pin, 2 tries left.

CryptoPro CSP: Type password for container "TEST1415"
Password:
Wrong pin, 1 tries left.

CryptoPro CSP: Type password for container "TEST1415"
Password:
    
Error: The card cannot be accessed because the wrong PIN was presented.
/dailybuildsbranches/CSP_4_0/CSPbuild/CSP/samples/CPCrypt/DSign.cpp:366: 0x8010006B
[ErrorCode: 0x8010006b]


Вариант указать -pin не предусмотрен в КриптоПРОшном курле как сказал ваш коллега постом выше:

Код:
$ /opt/cprocsp/bin/amd64/curl https://icrs.demo.nbki.ru/products/B2BRequestServlet --cert 47f0891ef1fb85aa7bb40f97ccfcfbb3a118e749 -pin 111
CryptoPro CSP: Type password for container "TEST1415"
Password:
Wrong pin, 2 tries left.

CryptoPro CSP: Type password for container "TEST1415"
Password:
Wrong pin, 1 tries left.

CryptoPro CSP: Type password for container "TEST1415"
Password:


А интерактивно пароль ввести я никак не могу.

ОС: CentOS 7.0
CSP: 4.0
Offline Максим Коллегин  
#50 Оставлено : 17 сентября 2015 г. 10:18:23(UTC)
Максим Коллегин

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

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

Сказал «Спасибо»: 32 раз
Поблагодарили: 706 раз в 614 постах
Точная версия CSP какая?
Знания в базе знаний, поддержка в техподдержке
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
8 Страницы«<34567>»
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.