Я хотел бы создать сертификат (самоподписанный на данный момент) для зашифрованного PDF файла на сервере. Для меня интересен рабочий процесс о том, как с помощью TCPDF.
Что я сделал:
1) Создайте ключи:
openssl req -x509 -nodes -days 365000 -newkey rsa:1024
openssl pkcs12 -export -in tcpdf.crt -out tcpdf.p12
2) Затем сгенерируйте PDF с помощью .crt
- файла
3) Затем я начал читать акробат и установил сертификат (tcpdf.p12
). Я использовал Document- > параметры безопасности → цифровой идентификатор
4) Я могу импортировать параметры безопасности, но до сих пор не могу открыть PDF. Не знаю, правильно ли я это делаю? Что происходит с тем, что читатель acrobat 9.5.4 открывает диалоговое окно с вводом пароля. Я указываю пароль и появляется ошибка → неизвестная ошибка → CRecipientList-218
5) Код, который я использовал (в основном то же самое)
$certificate = 'file://../tcpdf.crt';
$info = array(
'Name' => 'TCPDF',
'Location' => 'Office',
'Reason' => 'Testing TCPDF',
'ContactInfo' => 'http://www.tcpdf.org',
);
$pdf->setSignature($certificate, $certificate, 'tcpdfdemo', '', 2, $info);
$pdf->SetProtection($permissions=array('print', 'copy'), $user_pass='', owner_pass=null, $mode=1, $pubkeys=array(array('c' => 'file://../tcpdf.crt', 'p' => array('print'))));
Я объединил следующие примеры:
http://www.tcpdf.org/examples/example_052.phps
http://www.tcpdf.org/examples/example_016.phps
P.S.: Я знаю, что это очень практичный пример. Просто подумал, что легче понять шаги, которые я делаю.
Вопросы:
-
Является ли рабочий процесс в целом правильным: как (!) обращаться к сертификатам для PDF с шифрованием?
-
Когда я создаю файл
.p12
, я должен указать пароль для этого файла, который я использовал позже, когда импортировал сертификат в acrobat. Я спрашиваю, потому что у меня есть возможность "по генерации", чтобы указать пароль. -
Если рабочий процесс прав... как я могу исправить проблему?