Я обновляю проект для моей компании, и есть раздел, в котором нам нужно подписать PDF-файл нашим файлом сертификата. В этом случае я должен изменить скрипт, который подписывает этот pdf, используя обновленную библиотеку из PHP.
В старом коде мы использовали другой сценарий, чтобы это произошло, и нам пришлось использовать файл .p12 + строку. Используя этот старый скрипт, когда вы открываете созданный pdf в Acrobat Reader DC, мы получаем следующее изображение, на котором вы видите «Подписано, и все подписи действительны».
В новом скрипте я использую следующий пример:
https://tcpdf.org/examples/example_052/
Чтобы иметь возможность применить этот пример с моим сертификатом, мне пришлось преобразовать свой сертификат файла pfx (".p12") в 2 вида ".pem", которые выдают следующие строки команд nexts:
openssl pkcs12 -in myOldCertificate.p12 -clcerts -nokeys -out publicCert.pem -> спросил меня «Введите пароль для импорта»
openssl pkcs12 -in myOldCertificate.p12 -nocerts -out privateKey_cert.pem -> спросил меня «Введите пароль для импорта», а также «Введите пароль PEM»
Итак, наконец, я просто изменил строку 89 из загруженного примера 52.
// установить подпись документа
$ pdf-> setSignature ('file: ///var/www/html/publicCert.pem', 'file: ///var/www/html/privateKey_cert.pem', 'xxxxxx', '', 2, $ info); -> В 'xxxxx' я написал ту же строку, что и пароль для импорта, и, на всякий случай, также для парольной фразы PEM.
И когда я создаю PDF-файл с цифровой подписью и открываю его с помощью Acrobat Reader DC, вы можете увидеть следующее изображение:
Меня беспокоит то, что я вижу, что написано «Сертифицировано сертификацией моей компании», и кажется, что все в порядке, но зеленой галочки нет, и я не уверен, что она полностью действительна. Вы должны подумать, что мне понадобится самый безопасный способ проверить подлинность и целостность этого pdf.