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

Уведомление

Icon
Error

7 Страницы«<567
Опции
К последнему сообщению К первому непрочитанному
Offline Александр Лавник  
#61 Оставлено : 19 февраля 2020 г. 10:31:22(UTC)
Александр Лавник

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

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

Сказал «Спасибо»: 53 раз
Поблагодарили: 776 раз в 718 постах
Автор: edodoc Перейти к цитате
Здравствуйте, народ подскажите, при вызове метода $sd->SignCades ($signer, 1, true, \ENCODE_BASE64), как передавать пароль без необходимости ввода его в терминал?
Или нужно через отдельный поток передавать пароль?
Насколько я понимаю это пароль от контейнера?

Примерно объясню что пытаюсь сделать:
Наша приложение на php, делаем подпись документов на отдельном серваке в виде сервиса (в рамках 1 клиент, 1 лицензия КриптоПро и 1 сертификат, для каждого клиента).
На сервере есть контейнер, возможно как то хранить и указывать на пароль без необходимости его вводить придумывая отдельный поток для ввода (лишние телодвижения и геморой)?
Может есть какой то свойство или метод для указания пароля?

Здравствуйте.

Метод set_KeyPin() объекта CPSigner.

Аналог свойства KeyPin интерфейса COM.
Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Александр Лавник за этот пост.
edodoc оставлено 19.02.2020(UTC)
Offline edodoc  
#62 Оставлено : 19 февраля 2020 г. 16:00:05(UTC)
edodoc

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

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

Сказал(а) «Спасибо»: 7 раз
Народ подскажите, когда подписываю файлы через вызов скрипта php нормально пописывает, но если пытаюсь обратится через apache выдает ошибку:

Cannot find object or property. (0x80092004)

Сертификат установлен под того же пользователя что и запуск apache.
При проверке через консоль - "/opt/cprocsp/bin/amd64/csptest -keyset -enum_cont -verifycontext -fqcn", показывает что сертификат установлен - "\\.\HDIMAGE\testcont".
Но при запросе к серверу - "curl 'http://192.168.0.133/index.php'" и вызове команды - "/opt/cprocsp/bin/amd64/csptest -keyset -enum_cont -verifycontext -fqcn", сертификатов не находит.

В чем может быть проблема?

Отредактировано пользователем 19 февраля 2020 г. 16:23:01(UTC)  | Причина: Не указана

Offline Александр Лавник  
#63 Оставлено : 19 февраля 2020 г. 18:29:14(UTC)
Александр Лавник

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

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

Сказал «Спасибо»: 53 раз
Поблагодарили: 776 раз в 718 постах
Автор: edodoc Перейти к цитате
Народ подскажите, когда подписываю файлы через вызов скрипта php нормально пописывает, но если пытаюсь обратится через apache выдает ошибку:

Cannot find object or property. (0x80092004)

Сертификат установлен под того же пользователя что и запуск apache.
При проверке через консоль - "/opt/cprocsp/bin/amd64/csptest -keyset -enum_cont -verifycontext -fqcn", показывает что сертификат установлен - "\\.\HDIMAGE\testcont".
Но при запросе к серверу - "curl 'http://192.168.0.133/index.php'" и вызове команды - "/opt/cprocsp/bin/amd64/csptest -keyset -enum_cont -verifycontext -fqcn", сертификатов не находит.

В чем может быть проблема?

Вы привели 2 одинаковые команды:

Код:
/opt/cprocsp/bin/amd64/csptest -keyset -enum_cont -verifycontext -fqcn

и написали, что нужный ключевой контейнер находится в выведенном списке, но потом пишите, что его там нет.

Так под каким пользователем ключевой контейнер виден, а под каким нет?

И под каким пользователем запускаете apache?
Техническую поддержку оказываем тут
Наша база знаний
Offline edodoc  
#64 Оставлено : 20 февраля 2020 г. 8:49:45(UTC)
edodoc

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

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

Сказал(а) «Спасибо»: 7 раз
Автор: Александр Лавник Перейти к цитате
Автор: edodoc Перейти к цитате
Народ подскажите, когда подписываю файлы через вызов скрипта php нормально пописывает, но если пытаюсь обратится через apache выдает ошибку:

Cannot find object or property. (0x80092004)

Сертификат установлен под того же пользователя что и запуск apache.
При проверке через консоль - "/opt/cprocsp/bin/amd64/csptest -keyset -enum_cont -verifycontext -fqcn", показывает что сертификат установлен - "\\.\HDIMAGE\testcont".
Но при запросе к серверу - "curl 'http://192.168.0.133/index.php'" и вызове команды - "/opt/cprocsp/bin/amd64/csptest -keyset -enum_cont -verifycontext -fqcn", сертификатов не находит.

В чем может быть проблема?

Вы привели 2 одинаковые команды:

Код:
/opt/cprocsp/bin/amd64/csptest -keyset -enum_cont -verifycontext -fqcn

и написали, что нужный ключевой контейнер находится в выведенном списке, но потом пишите, что его там нет.

Так под каким пользователем ключевой контейнер виден, а под каким нет?

И под каким пользователем запускаете apache?



При обращении к скрипту через php, команда: php -f {путь}/index.php
Внутри выполняется команда: echo \shell_exec('/opt/cprocsp/bin/amd64/csptest -keyset -enum_cont -verifycontext -fqcn');

Выводить:
CSP (Type:80) v5.0.10004 KC1 Release Ver:5.0.11635 OS:Linux CPU:AMD64 FastCode:READY:DISABLED (RSA; ).
AcquireContext: OK. HCRYPTPROV: 33723443
\\.\HDIMAGE\testcont
OK.
Total: SYS: 0,000 sec USR: 0,010 sec UTC: 0,110 sec
[ErrorCode: 0x00000000]

Сертификат видит.

При обращении к скрипту через http, команда: curl 'http://192.168.0.133/index.php'
Внутри выполняется команда: echo \shell_exec('/opt/cprocsp/bin/amd64/csptest -keyset -enum_cont -verifycontext -fqcn');

Выводить:
CSP (Type:80) v5.0.10004 KC1 Release Ver:5.0.11635 OS:Linux CPU:AMD64 FastCode:READY:DISABLED (RSA; ).
AcquireContext: OK. HCRYPTPROV: 15954995
OK.
Total: SYS: 0,000 sec USR: 0,000 sec UTC: 0,060 sec
[ErrorCode: 0x00000000]

Сертификат не видит.

Пользователь в обоях случаях один и тот же:
Array
(
[current_user] => edubuntu
[uid] => 1000
[gid] => 1000
)

На что еще мне обратить внимание, что то упускаю или что то не учел?

Отредактировано пользователем 20 февраля 2020 г. 9:00:37(UTC)  | Причина: Не указана

Offline Александр Лавник  
#65 Оставлено : 20 февраля 2020 г. 19:02:06(UTC)
Александр Лавник

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

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

Сказал «Спасибо»: 53 раз
Поблагодарили: 776 раз в 718 постах
Автор: edodoc Перейти к цитате
Автор: Александр Лавник Перейти к цитате
Автор: edodoc Перейти к цитате
Народ подскажите, когда подписываю файлы через вызов скрипта php нормально пописывает, но если пытаюсь обратится через apache выдает ошибку:

Cannot find object or property. (0x80092004)

Сертификат установлен под того же пользователя что и запуск apache.
При проверке через консоль - "/opt/cprocsp/bin/amd64/csptest -keyset -enum_cont -verifycontext -fqcn", показывает что сертификат установлен - "\\.\HDIMAGE\testcont".
Но при запросе к серверу - "curl 'http://192.168.0.133/index.php'" и вызове команды - "/opt/cprocsp/bin/amd64/csptest -keyset -enum_cont -verifycontext -fqcn", сертификатов не находит.

В чем может быть проблема?

Вы привели 2 одинаковые команды:

Код:
/opt/cprocsp/bin/amd64/csptest -keyset -enum_cont -verifycontext -fqcn

и написали, что нужный ключевой контейнер находится в выведенном списке, но потом пишите, что его там нет.

Так под каким пользователем ключевой контейнер виден, а под каким нет?

И под каким пользователем запускаете apache?



При обращении к скрипту через php, команда: php -f {путь}/index.php
Внутри выполняется команда: echo \shell_exec('/opt/cprocsp/bin/amd64/csptest -keyset -enum_cont -verifycontext -fqcn');

Выводить:
CSP (Type:80) v5.0.10004 KC1 Release Ver:5.0.11635 OS:Linux CPU:AMD64 FastCode:READY:DISABLED (RSA; ).
AcquireContext: OK. HCRYPTPROV: 33723443
\\.\HDIMAGE\testcont
OK.
Total: SYS: 0,000 sec USR: 0,010 sec UTC: 0,110 sec
[ErrorCode: 0x00000000]

Сертификат видит.

При обращении к скрипту через http, команда: curl 'http://192.168.0.133/index.php'
Внутри выполняется команда: echo \shell_exec('/opt/cprocsp/bin/amd64/csptest -keyset -enum_cont -verifycontext -fqcn');

Выводить:
CSP (Type:80) v5.0.10004 KC1 Release Ver:5.0.11635 OS:Linux CPU:AMD64 FastCode:READY:DISABLED (RSA; ).
AcquireContext: OK. HCRYPTPROV: 15954995
OK.
Total: SYS: 0,000 sec USR: 0,000 sec UTC: 0,060 sec
[ErrorCode: 0x00000000]

Сертификат не видит.

Пользователь в обоях случаях один и тот же:
Array
(
[current_user] => edubuntu
[uid] => 1000
[gid] => 1000
)

На что еще мне обратить внимание, что то упускаю или что то не учел?

Здравствуйте.

Повторил Ваш опыт на своем стенде.

Вывел имя пользователя (www-data):

Код:
ps aux|grep apache

Для этого пользователя создал папку:

Код:
/var/opt/cprocsp/keys/www-data

Скопировал в нее ключевой контейнер.

Сменил владельца и группу для:

Код:
/var/opt/cprocsp/keys/www-data

и всех вложенных директорий и файлов на www-data.

В:

Код:
/var/www/html/

создал файл index.php с текстом:

Код:
<?php

echo \shell_exec('/opt/cprocsp/bin/amd64/csptest -keyset -enum_cont -verifycontext -fqcn');

?>

В браузере открыл страницу:

Код:
http://hostname/index.php

и получил вывод:

Код:
CSP (Type:80) v5.0.10003 KC1 Release Ver:5.0.11455 OS:Linux CPU:AMD64 FastCode:READY:AVX. AcquireContext: OK. HCRYPTPROV: 18399123 \\.\HDIMAGE\testcont OK. Total: SYS: 0.000 sec USR: 0.010 sec UTC: 0.020 sec [ErrorCode: 0x00000000]
Техническую поддержку оказываем тут
Наша база знаний
Offline edodoc  
#66 Оставлено : 21 февраля 2020 г. 9:10:33(UTC)
edodoc

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

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

Сказал(а) «Спасибо»: 7 раз
Здравствуйте, я устанавливаю тестовый сертификат командой - /opt/cprocsp/bin/amd64/cryptcp -creatcert -dn "CN=test" -cont '\\.\HDIMAGE\testcont', для того пользователя под которым выполняется скрипт.
Может в команде вы используете какие то еще атрибуты?

Народ после смены наименования и прав на директорию /var/opt/cprocsp/keys/{пользователь}, сертификат \\.\HDIMAGE\testcont начал видеть, но ошибка все равно выплывает при поиске и переборе:

$certs = $certs->Find ($findType, $query, $validOnlyCertificates);
$certs->Item ($number);

Ошибка:

Cannot find object or property. (0x80092004)

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

Offline edodoc  
#67 Оставлено : 21 февраля 2020 г. 14:00:51(UTC)
edodoc

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

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

Сказал(а) «Спасибо»: 7 раз
Автор: edodoc Перейти к цитате
Здравствуйте, я устанавливаю тестовый сертификат командой - /opt/cprocsp/bin/amd64/cryptcp -creatcert -dn "CN=test" -cont '\\.\HDIMAGE\testcont', для того пользователя под которым выполняется скрипт.
Может в команде вы используете какие то еще атрибуты?

Народ после смены наименования и прав на директорию /var/opt/cprocsp/keys/{пользователь}, сертификат \\.\HDIMAGE\testcont начал видеть, но ошибка все равно выплывает при поиске и переборе:

$certs = $certs->Find ($findType, $query, $validOnlyCertificates);
$certs->Item ($number);

Ошибка:

Cannot find object or property. (0x80092004)


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