我有一个Java程序,它目前使用私有JDK类(CertAndKeyGen
和X500Name
)来生成自签名X.509证书。
这种方法存在太多问题:
我想将此代码转换为使用标准的,受支持的JDK类。
我已经看过使用名称不明的CertificateFactory.generateCertificate()
方法,但没有运气:他们无法生成任何证书,他们只能加载现有证书。
有人知道可以生成自签名证书的标准JDK API吗?
这是我可以去的地方:
KeyPairGenerator generator = KeyPairGenerator.getInstance("RSA");
generator.initialize(2048, SecureRandom.getInstance("SHA1WithRSA"));
KeyPair keyPair = generator.generateKeyPair();
PrivateKey privatekey = keyPair.getPrivate();
X500Principal principal = new X500Principal(dn);
CertificateFactory certFactory = CertificateFactory.getInstance("X.509");
// How to generate the self-signed certificate from there?
// certFactory.generate(inputStream) // only able to load an existing certificate
注意:
X509V3CertificateGenerator
keytool
:)ProcessBuilder
答案 0 :(得分:2)
好的,那我觉得它不存在。
我提交给JDK的RFE已被接受,现在有一个官方错误:http://bugs.java.com/bugdatabase/view_bug.do?bug_id=JDK-8165481