| 
	Статус: Новичок
 Группы: Участники
 Зарегистрирован: 21.06.2021(UTC) Сообщений: 7  | 
            
		      
                Приветствую! Собрал docker контейнер на centos:7 с cprocsp, phpcades, php7.2. Добавил сертификат: Код:
/opt/cprocsp/bin/amd64/certmgr -inst -store umy -pfx -pin 12345678 -file test.pfx
 Далее в php пытаюсь подписать XML файл: Код:
    $signer = new CPSigner();
    $signer->set_Certificate($cert);
    $signer->set_KeyPin('12345678');
    $signer->set_Options(2);
    $sd = new CPSignedXml();
    $sd->set_SignatureType(2);
    $sd->set_Content($content);
    $sd->set_DigestMethod('urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-256');
    $sd->set_SignatureMethod('urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-256');
    $signedXml = $sd->Sign($signer, "//*[local-name()='Signature' and position()=last()]");
 Но получаю ошибку  Код:
PHP Fatal error:  Uncaught Exception: Internal error. (0x8009200B)
 Подскажите, пожалуйста, в какую сторону искать проблему. | 
    | 
             | 
            
         | 
    |  | 
        
        
        
            
        
            
            
    | 
	Статус: Сотрудник
 Группы: Администраторы, Участники Зарегистрирован: 03.12.2018(UTC) Сообщений: 1,234 Сказал(а) «Спасибо»: 105 разПоблагодарили: 296 раз в 276 постах
 
 | 
            
		      
                Добрый день!а шаблон можете показать?
 | 
|  | 
    | 
             | 
            
         | 
    |  | 
        
        
        
    
        
            
            
    | 
	Статус: Новичок
 Группы: Участники
 Зарегистрирован: 21.06.2021(UTC) Сообщений: 7  | 
            
		      
                Добрый день! Прикрепляю тестовый пример полностью. Пример был найден где-то тут на форуме и насколько я понял был рабочим у автора, в примере только подставил свои значения для сертификата. Но возможно работало со старыми версиями только.  Чтобы отмести вариант с неправильным ключом сертификата проверял через консоль утилитой cryptcp с detached подписью - detached для файла генерировалась без ошибок.   test.php (8kb) загружен 9 раз(а). | 
    | 
             | 
            
         | 
    |  | 
        
        
        
            
        
            
            
    | 
	Статус: Сотрудник
 Группы: Администраторы, Участники Зарегистрирован: 03.12.2018(UTC) Сообщений: 1,234 Сказал(а) «Спасибо»: 105 разПоблагодарили: 296 раз в 276 постах
 
 | 
            
		      
                сменил критерий поиска сертификата и пин. успешно подписалось в докере. уточните у вас php-fpm? проверяете из браузера или же из консоли? у вас используется один root пользователь в докере? приведите вывод из контейнера /opt/cprocsp/bin/amd64/certmgr -list Отредактировано пользователем 30 июня 2021 г. 8:27:55(UTC)
 | Причина: Не указана | 
|  | 
    | 
             | 
            
         | 
    |  | 
        
        
        
    
        
            
            
    | 
	Статус: Новичок
 Группы: Участники
 Зарегистрирован: 21.06.2021(UTC) Сообщений: 7  | 
            
		      
                Автор: Санчир Момолдаев  сменил критерий поиска сертификата и пин. успешно подписалось в докере.
 уточните у вас php-fpm? проверяете из браузера или же из консоли?
 
 у вас используется один root пользователь в докере?
 
 приведите вывод из контейнера
 /opt/cprocsp/bin/amd64/certmgr -list
 Добрый день! Сборка php с php-fpm, но все произвожу в консоли. Т.е. и добавляю сертификат в хранилище от юзера root в консоли и скрипт запускаю от этого же юзера в консоли. Других юзеров в системе нет. cprocsp версия 5.0.11998-6.x86_64 phpcades версия 2.0.14071-1.amd64 + плагин для php7.2, который тут где-то на форуме нашел. Вывод команды /opt/cprocsp/bin/amd64/certmgr -list: Код:
[root@78a0590ecaf5 src]# /opt/cprocsp/bin/amd64/certmgr -list
Certmgr 1.1 (c) "Crypto-Pro", 2007-2020.
Program for managing certificates, CRLs and stores.
=============================================================================
1-------
Issuer              : E=support@cryptopro.ru, C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2
Subject             : E=varnavskij@inbox.ru, CN=LgotaTO, OU=IT, O=DepTrans, L=Moscow, S=Moscow, C=RU
Serial              : 0x120054E867FE1817113DB7B05A00010054E867
SHA1 Hash           : 43c61aab3cfa693a0f4998cae8066b97a51bbf25
SubjKeyID           : d5fd0e7f06a51883734aa83ab014eb10cef7b7da
Signature Algorithm : ГОСТ Р 34.11/34.10-2001
PublicKey Algorithm : ГОСТ Р 34.10-2012 256 бит (512 bits)
Not valid before    : 13/06/2021  08:20:19 UTC
Not valid after     : 13/09/2021  08:30:19 UTC
PrivateKey Link     : Yes                 
Container           : HDIMAGE\\60e73bb6.000\3F9B
Provider Name       : Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider
Provider Info       : Provider Type: 80, Key Spec: 1, Flags: 0x0
CA cert URL         : http://testca.cryptopro.ru/CertEnroll/test-ca-2014_CRYPTO-PRO%20Test%20Center%202(1).crt
OCSP URL            : http://testca.cryptopro.ru/ocsp/ocsp.srf
CDP                 : http://testca.cryptopro.ru/CertEnroll/CRYPTO-PRO%20Test%20Center%202(1).crl
Extended Key Usage  : 1.3.6.1.5.5.7.3.3 Подписывание кода
2-------
Issuer              : E=support@cryptopro.ru, C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2
Subject             : E=support@cryptopro.ru, C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2
Serial              : 0x37418882F539A5924AD44E3DE002EA3C
SHA1 Hash           : cd321b87fdabb503829f88db68d893b59a7c5dd3
SubjKeyID           : 4e833e1469efec5d7a952b5f11fe37321649552b
Signature Algorithm : ГОСТ Р 34.11/34.10-2001
PublicKey Algorithm : ГОСТ Р 34.10-2001 (512 bits)
Not valid before    : 27/05/2019  07:24:26 UTC
Not valid after     : 26/05/2024  07:34:05 UTC
PrivateKey Link     : No                  
=============================================================================
[ErrorCode: 0x00000000]
 В прикрепленном выше примере сертификат выбирается и отображается через printf, ошибка происходит именно при подписании. Я предположил, что возможно дело в том, что сертификат тестовый, попробовал то же самое с боевым (с другим хешом и пином), но результат получается тот же самый. Отредактировано пользователем 30 июня 2021 г. 11:24:27(UTC)
 | Причина: Не указана | 
    | 
             | 
            
         | 
    |  | 
        
        
        
            
        
            
            
    | 
	Статус: Сотрудник
 Группы: Администраторы, Участники Зарегистрирован: 03.12.2018(UTC) Сообщений: 1,234 Сказал(а) «Спасибо»: 105 разПоблагодарили: 296 раз в 276 постах
 
 | 
            
		      
                а корневой устанавливали? certmgr -inst -store mroot -file cert.crt | 
|  | 
    | 
             | 
            
         | 
    |  | 
        
        
        
    
        
            
            
    | 
	Статус: Новичок
 Группы: Участники
 Зарегистрирован: 21.06.2021(UTC) Сообщений: 7  | 
            
		      
                Добавил, заработало! Спасибо большое! | 
    | 
             | 
            
         | 
    |  | 
        
        
        
    
	                           
	
    
        Быстрый переход
         
	
    
    Вы не можете создавать новые темы в этом форуме.
	
	Вы не можете отвечать в этом форуме.
	
	Вы не можете удалять Ваши сообщения в этом форуме.
	
	Вы не можете редактировать Ваши сообщения в этом форуме.
	
	Вы не можете создавать опросы в этом форуме.
	
	Вы не можете голосовать в этом форуме.
	
	
    
    
        Important Information:
        The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
        
        
More Details
        Close