我正在尋找一個實用程序類,可以爲測試目的生成隨機證書字符串。任何想法,如果有一個已經實施?生成隨機證書
Q
生成隨機證書
5
A
回答
4
內置的Java庫X500使用證書比產生和解析證書更適合於。你可能會找到一種方法去做你想做的事情,但它幾乎肯定會是一團糟,並且在一個受保護的API中(sun.security.*
)。
我建議你加入Bouncy Castle圖書館(Apache許可證)。它有一個名爲X509V3CertificateGenerator
的類,您可以使用它來設置證書的字段(發行者,主題,到期日期等)。
然後,您應該能夠使用PEMWriter
類從中獲取PEM字符串。
3
要添加到martijno給出的解決方案,
而不是寫你自己的內容簽名,JCAContentSigner可以用來避免映射到AlgorithmIdentifier中(即OID)。
JcaContentSignerBuilder採用定義爲here的算法名稱。
X509v3CertificateBuilder certBuilder = new X509v3CertificateBuilder(issuer, serialNumber, startDate, expiryDate, subject, SubjectPublicKeyInfo.getInstance(keyPair.getPublic().getEncoded()));
JcaContentSignerBuilder builder = new JcaContentSignerBuilder("SHA256withRSA");
ContentSigner signer = builder.build(keyPair.getPrivate());
byte[] certBytes = certBuilder.build(signer).getEncoded();
CertificateFactory certificateFactory = CertificateFactory.getInstance("X.509");
X509Certificate certificate = (X509Certificate)certificateFactory.generateCertificate(new ByteArrayInputStream(certBytes));
+0
我是否正確,如果這不是一個自簽名證書我只是用私鑰替換私鑰? – maxbit89 2017-06-30 13:47:52
相關問題
- 1. 證書生成
- 2. 生成可驗證的隨機數 - Java
- 3. 隨機數生成器和驗證
- 4. 生成隨機數
- 5. ArrayList隨機生成
- 6. 隨機數生成
- 7. Javascript隨機生成
- 8. 生成隨機ASCII
- 9. 生成隨機數
- 10. 生成隨機圖
- 11. 隨機數生成機制
- 12. 通過隨機字符生成生成隨機名字太慢
- 13. 如何生成EC2證書
- 14. Android無法生成證書
- 15. 生成SER證書文件
- 16. 生成簽名證書
- 17. 無法生成iOS證書
- 18. 生成「類似的」證書
- 19. 快速隨機生成器
- 20. 隨機報價生成器
- 21. C#XNA - 隨機房生成
- 22. 僞隨機的URL生成
- 23. 生成隨機數據
- 24. 生成隨機密碼
- 25. 隨機文本生成器
- 26. 生成隨機日期
- 27. 隨機枚舉生成
- 28. 隨機種子生成
- 29. 從plist生成隨機名
- 30. 隨機生成變量名?
請注意'X509V3CertificateGenerator'已被棄用(至少在Bouncy Castle 1.47中)。他們建議使用'X509v3CertificateBuilder'(不是在'bcprov'中,而是在'bcpkix' jar中)。 – martijno 2012-08-14 10:24:04
現在它在'bcmail'罐子裏 – KeksArmee 2015-11-21 22:56:35
@KeksArmee:它仍然在'bcpkix'中。 – jackyalcine 2016-07-20 23:25:41