如何在证书中添加带有主机名和IP地址的使用者替代名称

问题描述

我正在生成证书和私钥,但我也需要在证书中包含subjectAlternative。

  KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA",bcProvider);
    keyPairGenerator.initialize(2048);
    KeyPair keyPair = keyPairGenerator.generateKeyPair();
    //setting serialNumber as currentTimeStamp
    BigInteger certSerialNumber = BigInteger.valueOf(System.currentTimeMillis());
    X500Name x500Name = new X500Name("CN=" + "test");
    X500Name subject = new X500Name("O=" + "test");
    String signatureAlgorithm = "SHA1withRSA";
    Instant startDate = Instant.Now();
    Instant endDate = startDate.plus(1 * 365,ChronoUnit.DAYS);
    ContentSigner contentSigner = new JcaContentSignerBuilder(signatureAlgorithm)
            .build(keyPair.getPrivate());
    X509v3CertificateBuilder certBuilder = new JcaX509v3CertificateBuilder(
            x500Name,certSerialNumber,Date.from(startDate),Date.from(endDate),subject,keyPair.getPublic()).addExtension(Extension.basicConstraints,true,new BasicConstraints(true));
    Certificate certificate = new JcaX509CertificateConverter().setProvider(bcProvider)
            .getCertificate(certBuilder.build(contentSigner));

我进行了很多搜索,但找不到添加主机名和IP地址的方法

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)