Ank*_*kit 1 java digital-certificate keystore itext
我的应用程序有SSL证书,我想用它来使用iText对PDF文件进行数字签名.证书的扩展名为.cer,由证书签名机构(CA)提供.
问题是我无法将此.cer证书转换为使用itext库签名PDF时所需的java密钥库.我的代码是:
这段代码显然抛出了无效的密钥库格式IOException.
KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());
ks.load(new FileInputStream("C:\\abc.cer"), "abcd".toCharArray());
String alias = (String) ks.aliases().nextElement();
PrivateKey key = (PrivateKey) ks.getKey(alias, "abcd".toCharArray());
java.security.cert.Certificate[] chain = ks.getCertificateChain(alias);
PdfReader reader = new PdfReader("C:\\test.pdf");
FileOutputStream fout = new FileOutputStream("C:\\signed.pdf");
PdfStamper stp = PdfStamper.createSignature(reader, fout, '\0');
PdfSignatureAppearance sap = stp.getSignatureAppearance();
sap.setCrypto(key, chain, null, PdfSignatureAppearance.WINCER_SIGNED);
sap.setReason("Test Reason");
sap.setLocation("Test Location");
sap.setVisibleSignature(new Rectangle(10, 10, 20, 20), 1, null);
stp.close();
Run Code Online (Sandbox Code Playgroud)
请告诉我如何将SSL证书转换为Java密钥库并将其用于签署pdf文件.
首先,证书不是"SSL证书".它们是x.509证书,其中一些可用于SSL/TLS身份验证.如果您拥有此类证书,则不能将其用于其他目的,包括PDF签名.
接下来,.cer文件是证书的公共部分,它不包含私钥.您需要一个证书和一个私钥来签署任何东西.
| 归档时间: |
|
| 查看次数: |
2228 次 |
| 最近记录: |