java - 使用 java 程序为 ssl 生成证书签名请求
问题描述
我想编写一个程序,可以生成包含所有信息的证书签名请求,例如域名、国家名称、州组织等。我知道如何使用open-ssl生成它,但我只想使用java 程序生成它。我怎样才能做到这一点?
谢谢你的帮助
解决方案
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);
}
推荐阅读
- php - PHP - Laravel 获取表格的最后一行
- python - 由两列组成的 Pandas 回归
- php - 多张图片上传PHP限制
- javascript - 有没有办法通过 JS/CSS display none 属性禁用自动完成功能?
- python - Django不会将表单数据保存到postgres数据库
- c - 没有收到来自父进程的信号
- r - base R — 如何检测 var-args (...) 是否分配了键名(命名参数)?
- javascript - RegExp:如何只找到一个匹配项(或不匹配模式)
- pandas - 如何按熊猫每个月份的单位价格分组?
- python - 使用熊猫数据框中的分类数据重命名变量