0

我的 java 程序应该使用自己的密钥对收到的 X509 证书请求进行签名。证书请求采用 PEM 格式。用于签名的密钥/证书位于本地 java 密钥库中。

我已经从java.security包中寻找合适的课程。但没有成功。

应该使用哪些 Java API 类来签署 X509 证书?

我可以将 PEM 转换为 DER,但 DER 的解码会导致问题。我尝试了以下方法:

BufferedInputStream  bis  = new BufferedInputStream(new ByteArrayInputStream(derReq));          
CertificateFactory certFact = CertificateFactory.getInstance("X.509");          
java.security.cert.Certificate cert = certFact.generateCertificate(bis);

javax.security.cert.X509Certificate cer = X509Certificate.getInstance(derReq);

两者都会导致以下异常:

javax.security.cert.CertificateException: Could not parse certificate: java.io.IOException: Empty input

因此,似乎这些仅适用于签名证书,而不适用于 X509 证书请求。

4

1 回答 1

1

我没有用 Java 做过任何PKI,但当然它通常保持不变。查看此链接:PKI Java

它涵盖了JCEBC的必需品。

于 2013-08-06T10:55:46.267 回答