我已将我的数字证书导出到Windows中受密码保护的PFX文件。
如何使用此数字签名pdf?
答案 0 :(得分:3)
我正在使用Aspose Pdf java sdk签署pdf。对于任何库,前两个步骤可能都是相同的。
如果您还没有证书,请使用openssl生成ssl私钥。显然,这会发出警告,因为它没有由CA签名。
openssl req -x509 -newkey rsa:2048 -keyout testkey.pem -out testcert.pem -days 365
接下来将您的密钥转换为pkcs12格式的证书。
openssl pkcs12 -name test -export -in testcert.pem -inkey testkey.pem -out test.pfx
最后使用Aspose Pdf或其他一些库来签署pdf
PdfFileSignature pdfSignSingle = new PdfFileSignature();
//Open the pdf
pdfSignSingle.bindPdf(pdfFileInputStream);
// Load the certificate using the com.aspose.pdf.PKCS1 object
PKCS1 pkcs1 = new PKCS1(certificateFileInputStream, certificatePassword);
pkcs1.setAuthority("Sample Person");
pkcs1.setReason("I want to sign");
pkcs1.setContactInfo("some contact info");
pkcs1.setLocation("here");
pkcs1.setShowProperties(false);
// Apply the signature. (0,0) is in the lower left corner.
pdfSignSingle.sign(1, true, new Rectangle(100, 100, 150, 50), pkcs1);
// Apply the signature image
pdfSignSingle.setSignatureAppearanceStream(imageFileInputStream);
pdfSignSingle.save(pdfFileOutputStream);
答案 1 :(得分:0)
我们的SecureBlackbox可用于使用存储在各种格式的文件中的证书,Windows CryptoAPI和硬件设备上的PKCS#11来签署PDF文档。
答案 2 :(得分:-2)
iTextPdf是java的一个很好的API,处理pdf文件。 还有一个包含示例的良好文档:http://itextpdf.com/book/digitalsignatures20130304.pdf
还有一个签署PDF文档的例子