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