【问题标题】:BouncyCastle - how to generate PKCS10 csr in version 1.52BouncyCastle - 如何在 1.52 版本中生成 PKCS10 csr
【发布时间】:2015-08-14 00:42:52
【问题描述】:

我下载了 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的正确方法吗?

欣赏!

【问题讨论】:

  • 是的,这是一种正确的编码方式,尽管没有负责任的 CA 应该给你一个证明你控制整个挪威的证书。注意org.bouncycastle.asn1.* 类在 bcprov jar 中,而其他类在 bcpkix 中。你确定两个都在项目中吗?如果您直接添加了 jars(而不是环境或类似的),它们都应该在 Package View 中的 Referenced Libraries 下,如果您展开 bcprov jar,然后是 ...asn1.x500 包,然后是 X500Name.class,然后是类(绿圈C)X500Name,你应该看到一堆字段和方法;这行得通吗?

标签: ssl bouncycastle


【解决方案1】:

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

问题是PKCS10CertificationRequestBuilderbcpkix.jar 上,而org.bouncycastle.asn1.x500.X500Namebcprov.jar 上,所以只需将bcprov.jar 添加到您的类路径中。

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

希望这会有所帮助,

【讨论】:

    猜你喜欢
    • 2013-12-30
    • 2021-11-01
    • 2016-05-30
    • 2011-03-14
    • 2015-07-07
    • 2015-11-28
    • 2017-04-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多