【发布时间】:2020-11-06 17:02:13
【问题描述】:
我有下面的 java 代码来生成 CSR,但我不确定如何在下面的代码中添加 SubjectAltNames。假设我想在此处添加两个 SAN,例如 a1.example.ca 和 a2.example.ca。请帮助在下面的程序中添加 SubjectAltName 的位置和方法。
public static void createCSR() throws NoSuchAlgorithmException, OperatorCreationException, IOException {
Provider bc = new
org.bouncycastle.jce.provider.BouncyCastleProvider();
Security.insertProviderAt(bc, 1);
KeyPairGenerator gen = KeyPairGenerator.getInstance("RSA");
gen.initialize(2048);
KeyPair pair = gen.generateKeyPair();
PrivateKey privateKey = pair.getPrivate();
PublicKey publicKey = pair.getPublic();
X500Principal subject = new X500Principal("C=CN, ST=ON, L=Brmpt, O=loblaw, OU=network, CN=abc.example.ca, EMAILADDRESS=john.adam@test.ca");
ContentSigner signGen = new JcaContentSignerBuilder("SHA1withRSA").build(privateKey);
PKCS10CertificationRequestBuilder builder = new JcaPKCS10CertificationRequestBuilder(subject, publicKey);
PKCS10CertificationRequest csr = builder.build(signGen);
OutputStreamWriter output = new OutputStreamWriter(System.out);
PEMWriter pem = new PEMWriter(output);
pem.writeObject(csr);
pem.writeObject(privateKey);
pem.close();
}
【问题讨论】:
标签: java bouncycastle csr