【发布时间】:2017-04-28 10:27:12
【问题描述】:
我使用 BouncyCastle 生成证书。现在我想添加一些SubjectAlternativeName,就像:
...
ArrayList namesList = new ArrayList();
namesList.add(new GeneralName(GeneralName.dNSName, "*.test"));
namesList.add(new GeneralName(GeneralName.iPAddress, "127.0.0.1"));
namesList.add(new GeneralName(GeneralName.rfc822Name, "zoltar@spkac.spectra.org"));
GeneralNames subjectAltNames = new GeneralNames(new DERSequence((GeneralName[])namesList.toArray(new GeneralName [] {})));
new_cert.addExtension(X509Extensions.SubjectAlternativeName, false, subjectAltNames);
...
程序正常执行,但我看不到“IP 地址”。 openssl 我明白了:
...
DNS:*.test, IP Address:<invalid>, email:zoltar@spkac.spectra.org
...
GeneralName(GeneralName.iPAddress, ...)) 调用中的 IP 地址的正确格式是什么?
【问题讨论】:
-
对我来说,openssl 有效(输出为
DNS:*.test, IP Address:127.0.0.1, email:zoltar@spkac.spectra.org)。运行openssl version给出:OpenSSL 1.0.1e-fips 2013 年 2 月 11 日(在 Linux Red Hat 4.4.7-16 机器上),可能是您使用的版本存在问题 -
还有其他理由相信它不正确吗?尝试使用其他工具查看它,例如浏览器。 bouncycastle 代码需要一个点 ip quad,就像在您的示例中一样,如果无法解析它会抛出异常。
-
openssl没有问题。我认为这是旧BouncyCastle库的问题。
标签: java security x509certificate bouncycastle x509