如何使用java API签署X509证书请求?

时间:2013-08-06 10:34:33

标签: java certificate x509

我的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证书请求。

1 个答案:

答案 0 :(得分:1)

我没有用Java做过任何 PKI ,但当然它通常都是一样的。查看此链接:PKI Java

它涵盖了 JCE BC 的必需品。