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證書請求。