BouncyCastle - 如何在版本1.52中生成PKCS10 csr

时间:2015-05-31 14:27:17

标签: ssl bouncycastle

我下载了bc * .jar文件(bcprov,bcpkix,bcmail,bcpg)并将它们放入我的项目中。但Eclipse无法解析org.bouncycastle.asn1。*。文档显然列出了asn1相关的功能。

我的代码:

    X500Principal subject = new X500Principal("C=NO");
    ContentSigner signGen = new JcaContentSignerBuilder("SHA1withRSA").build(pk);

    PKCS10CertificationRequestBuilder builder = new JcaPKCS10CertificationRequestBuilder(subject, pub);
    PKCS10CertificationRequest csr = builder.build(signGen);

Error: The type org.bouncycastle.asn1.x500.X500Name cannot be resolved. It is indirectly referenced from required .class files

这是生成csr的正确方法吗?

欣赏!

1 个答案:

答案 0 :(得分:0)

抛出异常是因为您的某些类依赖于org.bouncycastle.asn1.x500.X500Name,并且此类不在类路径中。在您的情况下,例如PKCS10CertificationRequestBuilder使用内部org.bouncycastle.asn1.x500.X500Name,所以可能存在问题。

问题是PKCS10CertificationRequestBuilder位于bcpkix.jarorg.bouncycastle.asn1.x500.X500Name位于bcprov.jar,因此只需将bcprov.jar添加到类路径中即可。

无论如何,如果您想使用java生成证书签名请求,可以直接使用keytool这是一个随JVM一起分发的工具,并且它位于$JAVA_HOME/bin/keytool上。互联网上有很多关于如何使用keytool生成csr的信息,你可以搜索,或者如果你想显示一个,你可以看看here

希望这有帮助,