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

Уведомление

Icon
Error

2 Страницы12>
Опции
К последнему сообщению К первому непрочитанному
Offline Дмитрий (LV)  
#1 Оставлено : 26 марта 2020 г. 18:26:41(UTC)
Дмитрий (LV)

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

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

Имеем Ubuntu, на которую был поставлен CSP 5.0
Там же есть PHP 7.2.24, и затем кое-как был собран и внедрен родной extension КриптоПро для PHP.

После этого я как мог создал тестовые сертификаты и хранилища, по инструкции вот отсюда: http://pushorigin.ru/cryptopro/cryptcp (жаль что формат certmgr безбожно устарел)

При попытке подписания валится ошибка

Цитата:
A certificate chain processed correctly, but terminated in a root certificate which is not trusted by the trust provider (0x800B0109)


Сертификат брал отсюда: https://www.cryptopro.ru/certsrv/

Куда смотреть? Гугл ничем помочь не может...
Offline Дмитрий (LV)  
#2 Оставлено : 26 марта 2020 г. 18:31:18(UTC)
Дмитрий (LV)

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

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

Для подписи в PHP разумеется использовал официальный пример - http://cpdn.cryptopro.ru...ent/cades/indexpage.html

...за неимением ничего другого
Offline Андрей *  
#3 Оставлено : 26 марта 2020 г. 20:28:18(UTC)
Андрей *

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

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

Сказал «Спасибо»: 338 раз
Поблагодарили: 1332 раз в 1035 постах
Здравствуйте.


sudo /opt/cprocsp/bin/amd64/certmgr -list -store mRoot

Есть сертификат тестового УЦ?


Приложите вывод (удалив ФИО и прочие данные):
/opt/cprocsp/bin/amd64/certmgr -list -store uMy
Техническую поддержку оказываем тут
Наша база знаний
Offline Дмитрий (LV)  
#4 Оставлено : 26 марта 2020 г. 20:36:36(UTC)
Дмитрий (LV)

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

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

Автор: Андрей * Перейти к цитате

Есть сертификат тестового УЦ?


Я только что почистил сертификаты, хочу поставить с нуля. Как это правильно сделать? Может я что-то не так сделал.

https://www.cryptopro.ru/certsrv/certcarc.asp - вот тут у меня есть один сгенерированный сертификат.

Нужно скачать его? По ссылке "Загрузка сертификата ЦС"? Или нужно цепочку качать?

И как правильно инсталлировать?

Спасибо!
Offline Андрей *  
#5 Оставлено : 26 марта 2020 г. 20:38:33(UTC)
Андрей *

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

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

Сказал «Спасибо»: 338 раз
Поблагодарили: 1332 раз в 1035 постах
установка сертификата УЦ:
sudo /opt/cprocsp/bin/amd64/certmgr -inst -store mRoot -file "/var/tmp/ca.cer"

установка сертификатов из контейнеров:
/opt/cprocsp/bin/amd64/csptestf -absorb -cert
Техническую поддержку оказываем тут
Наша база знаний
Offline Дмитрий (LV)  
#6 Оставлено : 26 марта 2020 г. 20:48:20(UTC)
Дмитрий (LV)

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

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

Простите за тупняк, но я правда не в теме.

1) Качаем .cer вот отсюда: http://joxi.ru/Vm6wVpvUjkZ0X2

2) С полученным файлом выполняем

sudo /opt/cprocsp/bin/amd64/certmgr -inst -store mRoot -file "/var/tmp/ca.cer"

3) Насчёт "из контейнеров"... а как они туда должны попасть?) У меня сейчас вот так: http://joxi.ru/8An8jZGU7Vl09m
Offline Андрей *  
#7 Оставлено : 26 марта 2020 г. 21:42:20(UTC)
Андрей *

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

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

Сказал «Спасибо»: 338 раз
Поблагодарили: 1332 раз в 1035 постах
список контейнеров:

/opt/cprocsp/bin/amd64/csptest -keyset -enum_cont -fqcn -verifyc

установить личный сертификат:

/opt/cprocsp/bin/amd64/certmgr -inst -cont '\\.\HDIMAGE\test' -file "/home/user/my.cer"

просмотреть установленные сертификаты:
/opt/cprocsp/bin/amd64/certmgr -list -store uMy
Техническую поддержку оказываем тут
Наша база знаний
Offline Дмитрий (LV)  
#8 Оставлено : 27 марта 2020 г. 13:10:05(UTC)
Дмитрий (LV)

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

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

так, я поудалял сертификаты и контейнеры и начал всё с нуля.

1) Создал контейнер и запросил сертификат: cryptcp -creatrqst -dn 'cn=test' -cont '\\.\hdimage\test' test.csr

2) https://www.cryptopro.ru/certsrv/certrqxt.asp - вот тут ввел base64 из test.csr на прошлом шаге, и скачал сертификат certnew.cer

3) Установил личный сертификат cryptcp -instcert -cont '\\.\hdimage\test' certnew.cer

Что теперь имеется:

1) Личные серты: /opt/cprocsp/bin/amd64/certmgr -list -store uMy

http://joxi.ru/v29wV94UzW057r

2) Список контейнеров http://joxi.ru/Vm6wVpvUjkgoX2

3) Есть сертификат тестового УЦ? sudo /opt/cprocsp/bin/amd64/certmgr -list -store mRoot

Нет, нету. Вы писали:

--- установка сертификата УЦ:
--- sudo /opt/cprocsp/bin/amd64/certmgr -inst -store mRoot -file "/var/tmp/ca.cer"

Но какой cer-файл туда давать? Тот же что и в uMy ?

Offline Дмитрий (LV)  
#9 Оставлено : 27 марта 2020 г. 13:15:03(UTC)
Дмитрий (LV)

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

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

Так, насчёт корневых сертификатов, погуглил как следует, нашёл http://testca2012.cryptopro.ru/ui/

Скачал корневой и промежуточный, установил оба командой /opt/cprocsp/bin/amd64/certmgr -inst -store mRoot -file "..."

Теперь выдача certmgr -list -store mRoot: http://joxi.ru/823wV0bUDONNJ2
Offline Дмитрий (LV)  
#10 Оставлено : 27 марта 2020 г. 13:16:54(UTC)
Дмитрий (LV)

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

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

Но почему-то ничего не поменялось (
Offline Дмитрий (LV)  
#11 Оставлено : 27 марта 2020 г. 13:23:46(UTC)
Дмитрий (LV)

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

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

Еще нюанс - я для простоты всё делаю от root пользователя, если это на что-то может влиять.
Offline Санчир Момолдаев  
#12 Оставлено : 27 марта 2020 г. 13:33:06(UTC)
Санчир Момолдаев

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

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

Сказал(а) «Спасибо»: 40 раз
Поблагодарили: 41 раз в 41 постах
Добрый день!
Уточните какая теперь ошибка в php
Техническую поддержку оказываем тут
Наша база знаний
Offline Дмитрий (LV)  
#13 Оставлено : 27 марта 2020 г. 13:33:59(UTC)
Дмитрий (LV)

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

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

Ну и еще нюанс - линух у меня тот самый, что встроен в Win10 (WSL иными словами)
Offline Дмитрий (LV)  
#14 Оставлено : 27 марта 2020 г. 13:34:27(UTC)
Дмитрий (LV)

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

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

Автор: Санчир Момолдаев Перейти к цитате
Добрый день!
Уточните какая теперь ошибка в php


Добрый, та же самая:

A certificate chain processed correctly, but terminated in a root certificate which is not trusted by the trust provider (0x800B0109)
Offline Дмитрий (LV)  
#15 Оставлено : 27 марта 2020 г. 13:39:46(UTC)
Дмитрий (LV)

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

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

Если что, вот актуальный PHP код

Код:

<?php 
function SetupStore($location, $name, $mode)
{
    $store = new CPStore();
    $store->Open($location, $name, $mode);
	return $store;
}

function SetupCertificates($location, $name, $mode)
{
    $store = SetupStore($location, $name, $mode);
	
    $res = $store->get_Certificates();

	return $res;
}

function SetupCertificate($location, $name, $mode,
                           $find_type, $query, $valid_only,
                           $number)
{
    $certs = SetupCertificates($location, $name, $mode);
	
    if ($find_type != NULL)
    {
        $certs = $certs->Find($find_type, $query, $valid_only);
		
        if (is_string($certs))
            return $certs;
        else
            return $certs->Item($number);
    }
    else
    {
        $cert = $certs->Item($number);
        return $cert;
    }
}

try
{
    $content = "test content";
    $tsp_addres = "http://testca2012.cryptopro.ru/tsp/tsp.srf";
    $cert = SetupCertificate(CURRENT_USER_STORE, "My", STORE_OPEN_READ_ONLY,
                             CERTIFICATE_FIND_SUBJECT_NAME, "test", 0, 1);

    if (!$cert)
    {
        printf("Certificate not found\n");
        return;
    }
	
    $signer = new CPSigner();
    $signer->set_TSAAddress($tsp_addres);
    $signer->set_Certificate($cert);

    $sd = new CPSignedData();
    $sd->set_Content($content);

    $sm = $sd->Sign($signer, 0, STRING_TO_UCS2LE);
    printf("Signature is:\n");
    printf($sm);
    printf("\n");
    $sd->Verify($sm, 0, VERIFY_SIGNATURE_ONLY);
    printf("Verify OK\n");
}
catch (Exception $e)
{
    echo("Error: " . $e->getMessage() . "\n");
}
Offline Санчир Момолдаев  
#16 Оставлено : 27 марта 2020 г. 13:39:52(UTC)
Санчир Момолдаев

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

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

Сказал(а) «Спасибо»: 40 раз
Поблагодарили: 41 раз в 41 постах
Автор: Дмитрий (LV) Перейти к цитате
Ну и еще нюанс - линух у меня тот самый, что встроен в Win10 (WSL иными словами)


в такой конфигурации не тестировалось.
а попробуйте что-нибудь подписать. data.txt должен быть не пустым
/opt/cprocsp/bin/amd64/cryptcp -sign -thumbprint 78ce6a0d382e719d5b00ee72a72c65e89ed222aa data.txt data.txt.sig
отпечаток можно узнать в certmgr -list -store umy
см. Sha1 отпечаток

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

Техническую поддержку оказываем тут
Наша база знаний
Offline Дмитрий (LV)  
#17 Оставлено : 27 марта 2020 г. 13:53:25(UTC)
Дмитрий (LV)

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

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

Тоже жалуется, но спрашивает: http://joxi.ru/zAN1vxyS6gQgZ2

И если разрешить - подписывает.

Может в PHP тоже можно как-то включить игнор root-сертификата?

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

Offline Санчир Момолдаев  
#18 Оставлено : 27 марта 2020 г. 14:00:14(UTC)
Санчир Момолдаев

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

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

Сказал(а) «Спасибо»: 40 раз
Поблагодарили: 41 раз в 41 постах
приложите сам сертификат. он же все равно тестовый
Техническую поддержку оказываем тут
Наша база знаний
Offline Дмитрий (LV)  
#19 Оставлено : 27 марта 2020 г. 14:05:26(UTC)
Дмитрий (LV)

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

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

Пожалуйста

certnew.zip (1kb) загружен 3 раз(а).
Offline Санчир Момолдаев  
#20 Оставлено : 27 марта 2020 г. 14:10:08(UTC)
Санчир Момолдаев

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

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

Сказал(а) «Спасибо»: 40 раз
Поблагодарили: 41 раз в 41 постах
скчайте корневой отсюда
Техническую поддержку оказываем тут
Наша база знаний
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
2 Страницы12>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.