如何用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
用法:
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)。
您可以参考以下链接获取相同的详细信息