如何用x.509签名/证书签署PDF

tl; dr:我正在寻找一个CLI工具,可以用一个x.509文件和一个inputPDF来input,而输出是一个签名的PDF。 NodeJS的最佳场景

你好。 我感到有点沮丧。 我正在寻找一种可以使用命令行签署PDF文件的工具。 我使用名为handy-signatur.at(来自www.a-trust.at的服务)的在线服务来生成x.509证书。

我发现一个页面 ,提到几个工具,但似乎所有这些都过时了,或者我只是愚蠢的,使他们的工作。

我特别尝试了PortableSigner,但是这需要Java 6,我无法在Ubuntu(服务器和桌面版)17.04上运行它。

/编辑:我无法使PortableSigner工作,因为Java 6和7不再可用,可能甚至不安全使用。

是否有任何命令行工具签署PDF文件?

非常感谢你们!

似乎PortableSigner做的工作。 在这里输入图像描述

如果你担心Java 7的支持。 尝试用Java 8,可能数字签名function仍然有效,因为7和8之间没有任何重要的变化

另外,使用PDFBox或者itext等库来实现一个Java签名程序相对容易。 这里有一个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> 

您可以在这里编写您自己的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 }); 

据我所知,openSSL是唯一维护的工具,可以支持inputx.509文件和PDF来生成签名的PDF文件。

请参阅x509的openSSL手册页 。

我还发现一个PortableSigner2项目,但它也不是最新的。

PortableSigner是一个用X.509证书对PDF进行数字签名的工具。

这是一个Java应用程序,因此需要安装兼容的JRE(根据网站:1.6和1.7)。

您可以参考以下链接获取相同的详细信息

http://portablesigner.sourceforge.net/

Interesting Posts