Как подписать PDF с подписью/сертификатом x.509
tl; dr: Я ищу инструмент CLI, который может быть загружен файлом x.509 и входным PDF файлом, а на выходе - подписанный PDF файл. Лучший сценарий для NodeJS
Привет. Я немного расстроен. Я ищу инструмент, который может подписывать файлы PDF с помощью командной строки. Я использую онлайн-сервис под названием handy-signatur.at(услуга от www.a-trust.at), которая генерирует сертификат x.509.
Я нашел страницу, в которой упоминаются несколько инструментов, но кажется, что все они устарели или я просто глуп, чтобы сделать они работают.
Я попробовал PortableSigner в частности, но для этого требуется Java 6, и я не мог заставить его работать с Ubuntu (версия для сервера и рабочего стола) 17.04.
/edit: Я не могу заставить PortableSigner работать, потому что Java 6 и 7 больше не доступны и, вероятно, даже не безопасны в использовании.
Есть ли какой-либо инструмент командной строки для подписывания PDF файлов?
Спасибо, ребята, так много!
Ответы
Ответ 1
Кажется, PortableSigner выполняет эту работу.
![введите описание изображения здесь]()
Если вас беспокоит поддержка Java 7. Попробуйте это с помощью Java 8, возможно, функции цифровой подписи все еще работают, потому что ничего не изменилось между 7 & 8
В качестве альтернативы, реализация сигнатурной программы с Java с использованием библиотек, таких как PDFBox или itext, относительно проста. Здесь у вас есть полный пример с pdfbox. Обратите внимание, что он имеет main
https://svn.apache.org/repos/asf/pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/signature/CreateSignature.java
использование:
java org.apache.pdfbox.examples.signature.CreateSignature
<pkcs12_keystore> <password> <pdf_to_sign>
Ответ 2
Вы можете написать свои собственные скрипты Java, здесь ссылка
http://wwwimages.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/AcrobatDC_js_api_reference.pdf
var myEngine = security.getHandler( "Adobe.PPKLite" );
myEngine.login( "password", "/C/Users/username/Desktop/PrivateUser.pfx" );
var myInfo = {password: "password",
reason: "SaveAs Test",
mdp: "defaultAndComments"};
this.certifyInvisibleSign({
oSig:myEngine,
oInfo:myInfo,
cDIPath:"/c/temp/sigSign.pdf",
cLegalAttest: "Certified using JavaScript",
bUI:false
});
Ответ 3
PortableSigner - это инструмент для цифровой подписи PDF файлов с сертификатами X.509.
Это приложение Java, поэтому требуется установка совместимой JRE (согласно веб-сайту: 1.6 и 1.7).
Вы можете сослаться на следующую ссылку, чтобы получить подробную информацию для тех же
http://portablesigner.sourceforge.net/
Ответ 4
Насколько я могу найти, openSSL - это единственный поддерживаемый инструмент, который может поддерживать ввод файла x.509 и PDF для создания подписанного PDF файла.
Смотрите справочную страницу openSSL для x509.
Я также нашел проект PortableSigner2, но он также не был текущим.