如何在BouncyCastle创建的X509证书中格式化SubjectAlternativeName的IP地址?

时间:2017-04-28 10:27:12

标签: java security x509certificate bouncycastle x509

我使用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地址形式是什么?

1 个答案:

答案 0 :(得分:0)

我认为这是非常古老的BouncyCastle库的问题。应用程序使用版本1.39从2008年开始。因此我将BC升级到版本1.56(2016年12月)并重写了应用程序,因为BC更改了一些API。现在我明白了:

DNS:*.test, IP Address:127.0.0.1, email:zoltar@spkac.spectra.org