сервер убунту 22 ( ВДС)
установил по мануалам крипто про, установил расширение пхп 8 2
из виндоус флэшки скопировал контейнер
далее определил
sudo mkdir -p /opt/usb
sudo dd if=/dev/zero of=/opt/usb/usb_image.img bs=1M count=100
sudo losetup /dev/loop0 /opt/usb/usb_image.img
sudo mkfs.vfat /dev/loop0
sudo mkdir -p /media/virtual_usb
sudo chmod 777 /media/virtual_usb
sudo mount -o loop,umask=000 /opt/usb/usb_image.img /media/virtual_usb
sudo ln -s /dev/loop0 /dev/disk/by-path/virtual-usb
ls -l /dev/disk/by-path/*usb*
>>>> lrwxrwxrwx 1 root root 10 Jul 29 08:45 /dev/disk/by-path/virtual-usb -> /dev/loop0
все работает под пользователем wildberries
wildberries@ynxqjevmoc:/var/opt/cprocsp/users$ /opt/cprocsp/bin/amd64/csptest -keyset -enum_cont -verifycontext -fqcn
CSP (Type:80) v5.0.10013 KC1 Release Ver:5.0.13000 OS:Linux CPU:AMD64 FastCode:READY:AVX,AVX2.
AcquireContext: OK. HCRYPTPROV: 39795363
\\.\C71C-511D\ФП Чичеров
\\.\HDIMAGE\ФП Чичеров
OK.
Total: SYS: 0.000 sec USR: 0.010 sec UTC: 0.040 sec
[ErrorCode: 0x00000000]
wildberries@ynxqjevmoc:/var/opt/cprocsp/users$
***********************
в браузере
<?php
echo \shell_exec('/opt/cprocsp/bin/amd64/csptest -keyset -enum_cont -verifycontext -fqcn');
>>>>
CSP (Type:80) v5.0.10013 KC1 Release Ver:5.0.13000 OS:Linux CPU:AMD64 FastCode:READY:AVX,AVX2.
AcquireContext: OK. HCRYPTPROV: 34572963
\\.\C71C-511D\ФП Чичеров
\\.\HDIMAGE\ФП Чичеров
OK.
Total: SYS: 0.000 sec USR: 0.010 sec UTC: 0.040 sec
[ErrorCode: 0x00000000]
*******************
однако
<?php
//Вспомогательные функции предварительной инициализации
function SetupStore($location, $name, $mode)
{
$store = new CPStore();
$store->Open($location, $name, $mode);
print_r($store);
return $store;
}
function SetupCertificates($location, $name, $mode)
{
$store = SetupStore($location, $name, $mode);
$certs = $store->get_Certificates();
print_r($certs);
return $certs;
}
function SetupCertificate($location, $name, $mode,
$find_type, $query, $valid_only,
$number)
{
$certs = SetupCertificates($location, $name, $mode);
if(!is_null($find_type))
{
$certs = $certs->Find($find_type, $query, $valid_only);
return $certs->Item($number);
}
else
{
$cert = $certs->Item($number);
return $cert;
}
}
function test_CPSignedData_Sign_Verify()
{
try{
$content = "test content";
$address = "http://testca.cryptopro.ru/tsp/tsp.srf";
$cert = SetupCertificate(CURRENT_USER_STORE, "My", STORE_OPEN_READ_ONLY,
CERTIFICATE_FIND_SUBJECT_NAME, "Test", 0,
1);
if(!$cert)
return "Certificate not found";
$signer = new CPSigner();
$signer->set_TSAAddress($address);
$signer->set_Certificate($cert);
$sd = new CPSignedData();
$sd->set_ContentEncoding(1);
$sd->set_Content(base64_encode($content));
// Второй параметр - тип подписи(1 = CADES_BES):
http://cpdn.cryptopro.ru...f7edbeeaf0be3d44c0b.html //Третий параметр detached - отделенная(true) или совмещенная (false)
$sm = $sd->SignCades($signer, 1, false, 0);
printf("Signature is:\n");
printf($sm);
printf("\n");
$sd->VerifyCades($sm, 1, false);
return 1;
}catch(Exception $e)
{
printf($e->getMessage());
}
}
//
echo \shell_exec('/opt/cprocsp/bin/amd64/csptest -keyset -enum_cont -verifycontext -fqcn');
/*
echo \shell_exec('/opt/cprocsp/bin/amd64/csptest -absorb -certs -autoprov');
echo '555'. "\r";
echo \shell_exec("/opt/cprocsp/bin/amd64/certmgr -inst -file /home/wildberries/cps/fulprint/fp.cer");
*/
echo '6666'. "\r";
if(test_CPSignedData_Sign_Verify() == 1)
{
printf("TEST OK\n");
}else
{
printf("TEST FAIL\n");
}
*****************************************************
CSP (Type:80) v5.0.10013 KC1 Release Ver:5.0.13000 OS:Linux CPU:AMD64 FastCode:READY:AVX,AVX2.
AcquireContext: OK. HCRYPTPROV: 34572963
\\.\C71C-511D\ФП Чичеров
\\.\HDIMAGE\ФП Чичеров
OK.
Total: SYS: 0.000 sec USR: 0.010 sec UTC: 0.040 sec
[ErrorCode: 0x00000000]
6666
CPStore Object
(
)
CPCertificates Object
(
)
Cannot find object or property.
(0x80092004)TEST FAIL
т е получаеться через PHP не видит ключи и сертификаты
возможно надо файл опен додоть в ПХП
Отредактировано пользователем 29 июля 2024 г. 9:40:05(UTC)
| Причина: Не указана