【发布时间】:2020-06-01 02:04:16
【问题描述】:
我想编写一个程序,可以生成 证书签名请求 包含所有信息,如域名、国家名称、国家组织等。我知道如何使用 open-ssl 生成它 但我只想用 java 程序 生成它。我该怎么做?
感谢您的帮助
【问题讨论】:
-
也许
jwt就是你在找的东西? -
不,我想创建 ssl 证书,为此我想使用任何命令行创建 CSR
我想编写一个程序,可以生成 证书签名请求 包含所有信息,如域名、国家名称、国家组织等。我知道如何使用 open-ssl 生成它 但我只想用 java 程序 生成它。我该怎么做?
感谢您的帮助
【问题讨论】:
jwt 就是你在找的东西?
Bouncy castle 提供了您需要的所有工具。
这是生成 CSR 的代码:
PrivateKey priKey = entry.getPrivateKey(keystore, pwd);
PKCS10CertificationRequestBuilder p10Builder
= new JcaPKCS10CertificationRequestBuilder(
cert.getSubjectX500Principal(), cert.getPublicKey());
JcaContentSignerBuilder csBuilder = new JcaContentSignerBuilder(cert.getSigAlgName());
ContentSigner signer = csBuilder.build(priKey);
PKCS10CertificationRequest csr = p10Builder.build(signer);
try (OutputStream stream = new FileOutputStream(file);
Writer writer = new OutputStreamWriter(stream, "UTF-8");
JcaPEMWriter out = new JcaPEMWriter(writer)) {
out.writeObject(csr);
}
【讨论】: