|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
12.07.2018, 10:53 | #1 |
Форумчанин
Регистрация: 19.01.2015
Сообщений: 158
|
PHP. Передать параметры в cryptcp
В командной строке Windows работает без ошибок
Код:
PHP код:
[ErrorCode: 0x2000012d] Ошибка: Сертификаты не найдены. Ругается на "CN=Иванов Петр, E=box@mail.ru" Самое интересное, что вывести команду на экран через PHP код:
В сети нашел только одно решение, и то для Java. Цитирую: вот так следует передавать параметры для вызова cryptcp что бы работало Код:
Буду признателен за любую помощь. |
12.07.2018, 15:40 | #2 |
Форумчанин
Регистрация: 19.01.2015
Сообщений: 158
|
Вот такую строку
Код:
s.cmd, он успешно отрабатывает. Но вызов этого бат-файла из PHP PHP код:
|
12.07.2018, 16:27 | #3 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
я абсолютный ноль в этих сертификатах и электронном подписывании документов.
очевидно, что возникает ошибка - "Сертификат не найден" посмотрите, на ответ Вам на форуме http://www.sql.ru/forum/1298439/php-...etry-v-cryptcp Т.о. тому пользователю под которым Вы выполняете батник (запускаете cryptcp ) установленные сертификат виден, а тому пользователю - под которым запускается php - не виден. Возможно, нужно установить сертификат для этого пользователя и всё наладится. а возможно, что можно обойти проблему и по другому. дальше я, возможно, скажу большую глупость, поэтому отнеситесь к моим словам очень настороженно! 1) почитайте доки. например, тут http://pushorigin.ru/cryptopro/cryptcp да, там линукс. но суть от этого не меняется. вот так можно получить список установленных сертификатов certmgr -list а ключ nochain - отменяет проверку цепочки сертификатов: Код:
|
|
13.07.2018, 12:24 | #4 |
Форумчанин
Регистрация: 19.01.2015
Сообщений: 158
|
Решил.
Действительно, PHP у тебя работает из-под пользователя, который твой сертификат не видит, так как сертификат установлен в твое личное пользовательское хранилище. При установке сертификата, надо указать "Локальный компьютер", далее поместить сертификат в "Личное хранилище". Если появится окно "Вставьте и выберите носитель для хранения контейнера закрытого ключа", то выбираем "Реестр". А в диалоге "Задайте пароль для создаваемого контейнера" - оставить пустой пароль. Всё. Теперь из PHP можно запускать хоть батник, или саму команду напрямую: PHP код:
-dn "CN=Иванов Петр, E=email@mail.ru" можно и упростить. Если адрес почты уникальный, и нигде в сертификатах не повторяется, то можно просто -dn "email@mail.ru" Необязательный вывод результата команды в файл > file.log я сделал для контроля, мало ли что |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Передать параметры в функцию | Sterben | Помощь студентам | 5 | 09.12.2015 02:14 |
Передать параметры | R71MT | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 10 | 21.09.2015 12:21 |
Передать параметры в main | Colobok | Общие вопросы C/C++ | 8 | 15.10.2014 14:58 |
PHP: как передать параметры через консоль? | three_cats | PHP | 5 | 04.04.2013 20:10 |
Как передать в поток параметры? И как из потока параметры достать? | Anekdot | Общие вопросы Delphi | 2 | 19.02.2010 22:40 |