2013-08-06 89 views
0

我的java程序應該使用自己的密鑰對收到的X509證書請求進行簽名。 證書請求採用PEM格式。用於簽名的密鑰/證書位於本地Java密鑰庫中。如何使用java API簽署X509證書請求?

我已經從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

我還沒有用Java做任何PKI,但它當然通常保持不變。看看這個鏈接:PKI Java

它涵蓋必需品JCEBC兩者。