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

Уведомление

Icon
Error

5 Страницы«<2345>
Опции
К последнему сообщению К первому непрочитанному
Offline Аксон Dev  
#31 Оставлено : 20 июля 2020 г. 17:53:10(UTC)
Аксон Dev

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

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

Автор: Санчир Момолдаев Перейти к цитате
версия php осталась та же?
есть возможность проверить на более новом дистрибутиве? к примеру ubuntu 18.04 и последним php5
мне кажется это из-за старого компилятора. из-за этого сообщения об ошибке не могут корректно дойти до системы


Провели тест
Цитата:

Linux 4.4.0-124-generic #148-Ubuntu SMP Wed May 2 13:00:18 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
PHP Version 7.1.33-3+ubuntu16.04.1+deb.sury.org+1


Падает при проверки, если кодировать в CAdES BES
Цитата:
PHP Fatal error: Uncaught Exception: The revocation process could not continue - the certificate(s) could not be checked. (0x800B010E) in /test.php:34
Stack trace:
#0 /test.php(34): CPSignedData->VerifyCades('MIIXqgYJKoZIhvc...', 1, false)
#1 {main}
thrown in /test.php on line 34


в CADES T
Все также падает в /test.php on line 32
Цитата:
Segmentation fault


Пример для воспроизведения
Цитата:
<?php

$tsp_address = "http://fix-online.sbis.ru/tsp/tsp.srf";
$hash = '7d0f94a20f2a5e11f2d5b805f0bcfb56e818ef64';
$valid_only = 0;

$store = new \CPStore();
$store->Open(CURRENT_USER_STORE, 'My', STORE_OPEN_READ_ONLY);

/** @var \CPCertificates $certs */
$certs = $store->get_Certificates();
$certs = $certs->Find(CERTIFICATE_FIND_SHA1_HASH, $hash, $valid_only);

if (!$certs->count()) {
printf("Certificate not found\n");
return;
}

/** @var \CPcertificate|null $cert */
$cert = $certs->item(1);

$signer = new \CPSigner();
$signer->set_TSAAddress($tsp_address);
$signer->set_Certificate($cert);

$sd = new \CPSignedData();
$sd->set_ContentEncoding(1);
$sd->set_Content(base64_encode('my content'));

// Второй параметр - тип подписи(1 = CADES_BES, 5 = CADES_T): http://cpdn.cryptopro.ru...f7edbeeaf0be3d44c0b.html
//Третий параметр detached - отделенная(true) или совмещенная (false)
$sm = $sd->SignCades($signer, 5, false, 0);
var_dump($sm);
Offline Санчир Момолдаев  
#32 Оставлено : 21 июля 2020 г. 9:15:16(UTC)
Санчир Момолдаев

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

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

Сказал(а) «Спасибо»: 101 раз
Поблагодарили: 291 раз в 271 постах
теперь попробуйте установить корневые сертификаты командой
/opt/cprocsp/bin/amd64/certmgr -inst -store root -file rootcert.crt
Техническую поддержку оказываем тут
Наша база знаний
Offline Аксон Dev  
#33 Оставлено : 21 июля 2020 г. 9:20:49(UTC)
Аксон Dev

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

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

Автор: Санчир Момолдаев Перейти к цитате
теперь попробуйте установить корневые сертификаты командой
/opt/cprocsp/bin/amd64/certmgr -inst -store root -file rootcert.crt


Какой сертификат требуется установить? вывод сертификатом в посте #2
Offline Санчир Момолдаев  
#34 Оставлено : 21 июля 2020 г. 10:14:50(UTC)
Санчир Момолдаев

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

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

Сказал(а) «Спасибо»: 101 раз
Поблагодарили: 291 раз в 271 постах
у вас есть доступ в их сеть?

по этим адресам вы получаете файлы?
URL сертификата УЦ : http://test-tensorca3/aia/8a473557ef2b58b03b177589620593cce2fc9dc2.crt
URL сертификата УЦ : http://test-tensorra3/aia/8a473557ef2b58b03b177589620593cce2fc9dc2.crt
URL сертификата УЦ : http://test-tensorra3/aia/8a473557ef2b58b03b177589620593cce2fc9dc2.crt
URL сертификата УЦ : http://test-tensorra3/aia/8a473557ef2b58b03b177589620593cce2fc9dc2.crt
URL списка отзыва : http://test-tensorca3/cdp/8a473557ef2b58b03b177589620593cce2fc9dc2.crl
URL списка отзыва : http://test-tensorra3/cdp/8a473557ef2b58b03b177589620593cce2fc9dc2.crl
URL списка отзыва : http://test-tensorra3/cdp/8a473557ef2b58b03b177589620593cce2fc9dc2.crl
URL списка отзыва : http://test-tensorra3/cdp/8a473557ef2b58b03b177589620593cce2fc9dc2.crl
URL сертификата УЦ : http://test-tensor-uc/aia/360412e9111d2ccb413ca4be48f75445923b2613.crt
URL сертификата УЦ : http://test-tensor-uc/aia/360412e9111d2ccb413ca4be48f75445923b2613.crt
URL сертификата УЦ : http://test-tensor-uc/aia/360412e9111d2ccb413ca4be48f75445923b2613.crt
URL списка отзыва : http://test-tensor-uc/cdp/360412e9111d2ccb413ca4be48f75445923b2613.crl
URL списка отзыва : http://test-tensor-uc/cdp/360412e9111d2ccb413ca4be48f75445923b2613.crl
URL списка отзыва : http://test-tensor-uc/cdp/360412e9111d2ccb413ca4be48f75445923b2613.crl
Техническую поддержку оказываем тут
Наша база знаний
Offline Аксон Dev  
#35 Оставлено : 21 июля 2020 г. 10:18:59(UTC)
Аксон Dev

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

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

Автор: Санчир Момолдаев Перейти к цитате
у вас есть доступ в их сеть?

Нет
Offline Санчир Момолдаев  
#36 Оставлено : 21 июля 2020 г. 10:21:50(UTC)
Санчир Момолдаев

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

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

Сказал(а) «Спасибо»: 101 раз
Поблагодарили: 291 раз в 271 постах
для проверки сертификатов необходимы списки отзыва.
обратитесь в УЦ чтобы они предоставили вам актуальные списки отзыва от тестового контура
а для проверки php кода воспользуйтесь нашими тестовыми УЦ. получите там сертификат и используйте нашу тестовую tsp службу
Техническую поддержку оказываем тут
Наша база знаний
Offline Аксон Dev  
#37 Оставлено : 22 июля 2020 г. 16:22:38(UTC)
Аксон Dev

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

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

Автор: Санчир Момолдаев Перейти к цитате
для проверки сертификатов необходимы списки отзыва.
обратитесь в УЦ чтобы они предоставили вам актуальные списки отзыва от тестового контура
а для проверки php кода воспользуйтесь нашими тестовыми УЦ. получите там сертификат и используйте нашу тестовую tsp службу


Использовали для тестирования ваш тестовый сертификат и tsp службу, хэш был получен, но при проверке методом VerifyCades, данный метод возвращает NULL, даже если $sd->set_Content вставить измененные данные (не те что передовались при получении хэша), если передать на проверку данные теже что и при хешировании также метод VerifyCades возвращает null

Цитата:

$sd = new \CPSignedData();
$sd->set_ContentEncoding(1);
$sd->set_Content(base64_encode('my 1content'));

// Второй параметр - тип подписи(1 = CADES_BES): http://cpdn.cryptopro.ru...f7edbeeaf0be3d44c0b.html
//Третий параметр detached - отделенная(true) или совмещенная (false)
$sm = $sd->SignCades($signer, 5, false, 0);
var_dump($sm);
var_dump($sd->VerifyCades($sm, 5, false));

Отредактировано пользователем 22 июля 2020 г. 16:24:43(UTC)  | Причина: Не указана

Offline Санчир Момолдаев  
#38 Оставлено : 22 июля 2020 г. 18:48:03(UTC)
Санчир Момолдаев

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

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

Сказал(а) «Спасибо»: 101 раз
Поблагодарили: 291 раз в 271 постах
Автор: Аксон Dev Перейти к цитате
Автор: Санчир Момолдаев Перейти к цитате
для проверки сертификатов необходимы списки отзыва.
обратитесь в УЦ чтобы они предоставили вам актуальные списки отзыва от тестового контура
а для проверки php кода воспользуйтесь нашими тестовыми УЦ. получите там сертификат и используйте нашу тестовую tsp службу


Использовали для тестирования ваш тестовый сертификат и tsp службу, хэш был получен, но при проверке методом VerifyCades, данный метод возвращает NULL, даже если $sd->set_Content вставить измененные данные (не те что передовались при получении хэша), если передать на проверку данные теже что и при хешировании также метод VerifyCades возвращает null

Цитата:

$sd = new \CPSignedData();
$sd->set_ContentEncoding(1);
$sd->set_Content(base64_encode('my 1content'));

// Второй параметр - тип подписи(1 = CADES_BES): http://cpdn.cryptopro.ru...f7edbeeaf0be3d44c0b.html
//Третий параметр detached - отделенная(true) или совмещенная (false)
$sm = $sd->SignCades($signer, 5, false, 0);
var_dump($sm);
var_dump($sd->VerifyCades($sm, 5, false));


все правильно. в справке в cpdn указано:
Цитата:
Возвращаемое значение
Возвращаемое значение имеет тип HRESULT. Значение S_OK означает успешное выполнение.

поэтому в коде который я привел выше после verifycades идет присвоение значение переменной.
не забывайте про try catch

по поводу set_Content
вы же после этого подписываете собообщение и тут же проверяете. поэтому ошибок нет
Техническую поддержку оказываем тут
Наша база знаний
Offline Аксон Dev  
#39 Оставлено : 27 июля 2020 г. 14:16:22(UTC)
Аксон Dev

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

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

Автор: Санчир Момолдаев Перейти к цитате


все правильно. в справке в cpdn указано:
Цитата:
Возвращаемое значение
Возвращаемое значение имеет тип HRESULT. Значение S_OK означает успешное выполнение.

поэтому в коде который я привел выше после verifycades идет присвоение значение переменной.
не забывайте про try catch

по поводу set_Content
вы же после этого подписываете собообщение и тут же проверяете. поэтому ошибок нет



Спасибо с проверкой валидности разобрались.


Проблема с выбором другой tsp службы а именно на "https://fix-online.sbis.ru/tsp/tsp.srf" или "https://online.sbis.ru/tsp/tsp.srf"
Падает запрос в Segmentation fault
strace при тестировании sbis.ru
Цитата:

...
connect(10, {sa_family=AF_INET, sin_port=htons(443), sin_addr=inet_addr("91.232.92.24")}, 16) = -1 EINPROGRESS (Operation now in progress)
poll([{fd=10, events=POLLOUT}], 1, 1000) = 1 ([{fd=10, revents=POLLOUT}])
getsockopt(10, SOL_SOCKET, SO_ERROR, [0], [4]) = 0
getpeername(10, {sa_family=AF_INET, sin_port=htons(443), sin_addr=inet_addr("91.232.92.24")}, [16]) = 0
getsockname(10, {sa_family=AF_INET, sin_port=htons(40912), sin_addr=inet_addr("localhost_ip")}, [16]) = 0
--- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0x18} ---
+++ killed by SIGSEGV +++


strace "валидный" с вашей tsp службой
Цитата:

...
connect(22, {sa_family=AF_INET, sin_port=htons(80), sin_addr=inet_addr("193.37.157.47")}, 16) = -1 EINPROGRESS (Operation now in progress)
poll([{fd=22, events=POLLOUT}], 1, 1000) = 1 ([{fd=22, revents=POLLOUT}])
getsockopt(22, SOL_SOCKET, SO_ERROR, [0], [4]) = 0
getpeername(22, {sa_family=AF_INET, sin_port=htons(80), sin_addr=inet_addr("193.37.157.47")}, [16]) = 0
getsockname(22, {sa_family=AF_INET, sin_port=htons(39562), sin_addr=inet_addr("localhost_ip")}, [16]) = 0
sendto(22, "POST /ocsp/ocsp.srf HTTP/1.1\r\nUs"..., 325, MSG_NOSIGNAL, NULL, 0) = 325
...


Т.е. фактический отправки в sendto нет, в чем может быть причина?

PS wget на адрес https://fix-online.sbis.ru/tsp/tsp.srf получает файл tsp.srf с сервера, на котором производится тест

Отредактировано пользователем 27 июля 2020 г. 16:13:02(UTC)  | Причина: Не указана

Offline Санчир Момолдаев  
#40 Оставлено : 27 июля 2020 г. 16:57:43(UTC)
Санчир Момолдаев

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

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

Сказал(а) «Спасибо»: 101 раз
Поблагодарили: 291 раз в 271 постах
проверьте эти адреса на демо-странице
http://fix-online.sbis.ru/tsp/tsp.srf - судя по ошибке не запущена служба tsp
http://online.sbis.ru/tsp/tsp.srf - работает
Техническую поддержку оказываем тут
Наша база знаний
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
5 Страницы«<2345>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.