【发布时间】:2011-10-18 05:02:55
【问题描述】:
目前我正在使用BouncyCastle 库来生成证书。像这样的:
X509V3CertificateGenerator certGenerator = new X509V3CertificateGenerator();
certGenerator.setIssuerDN( rootCertificate.getSubjectX500Principal() );
certGenerator.setSignatureAlgorithm( "SHA1withRSA" );
certGenerator.setSerialNumber( serial );
certGenerator.setNotBefore( notBefore );
certGenerator.setNotAfter( notAfter );
certGenerator.setPublicKey( rootCertificate.getPublicKey() );
Hashtable<DERObjectIdentifier, String> attrs = new Hashtable<DERObjectIdentifier, String>();
Vector<DERObjectIdentifier> order = new Vector<DERObjectIdentifier>();
attrs.put( X509Principal.C, "RU" );
// other attrs.put() calls here
order.addElement( X509Principal.C );
// other order.addElement() calls here
certGenerator.setSubjectDN( new X509Principal( order, attrs ) );
certGenerator.addExtension( X509Extensions.AuthorityKeyIdentifier, false, new AuthorityKeyIdentifierStructure( rootCertificate ) );
certGenerator.addExtension( X509Extensions.SubjectKeyIdentifier, false, new SubjectKeyIdentifierStructure( newKeyPair.getPublic() ) );
return certGenerator.generate( rootPrivateKey, "BC" );
我可以在生成的证书中添加SubjectAltNames 字段吗?
【问题讨论】:
-
回答您自己的问题很好,但您可能应该将其作为一个明确的答案(以便它更明显并且可以被投票)。
-
@JoachimSauer:我试图这样做,但系统说我应该让 rep >= 100 或等待 8 小时。所以我决定这总比没有好:)
-
哦,是的,我明白了。有一些限制。我希望你不介意我把你的答案贴在下面(作为社区维基,所以我不会得到任何代表)。
标签: java ssl-certificate bouncycastle multiple-domains