【问题标题】:Reading certificate error读取证书错误
【发布时间】:2014-08-06 16:00:01
【问题描述】:

在不同的服务器上运行我的应用程序时出现以下异常。该代码在两个不同的 tomcat 服务器上工作,但在一个特定的服务器上它不起作用。

java.lang.NoClassDefFoundError: org/bouncycastle/asn1/pkcs/PrivateKeyInfo org.bouncycastle.jcajce.provider.asymmetric.rsa.KeyFactorySpi.engineGeneratePrivate(未知 来源)java.security.KeyFactory.generatePrivate(KeyFactory.java:372)

我收到错误时的代码部分是这一行的以下内容

> pk = kf.generatePrivate(ks);

 PrivateKey pk = null;        
    X509Certificate cert = null;

Security.addProvider(new BouncyCastleProvider());
try{
    byte [] key = Base64.decodeBase64(llave.getBytes());
    byte [] cer = Base64.decodeBase64(certificado.getBytes());                              

    KeyFactory kf = KeyFactory.getInstance("RSA");
    PKCS8EncodedKeySpec ks = new PKCS8EncodedKeySpec(key);
    pk = kf.generatePrivate(ks);
    pk.getEncoded();

    CertificateFactory certFactory = CertificateFactory.getInstance("X.509");
    InputStream in = new ByteArrayInputStream(cer);
    cert = (X509Certificate)certFactory.generateCertificate(in);

    DateTime fechaDesde = new DateTime(cert.getNotBefore());
    DateTime fechaHasta = new DateTime(cert.getNotAfter());

有人知道为什么会这样吗?

【问题讨论】:

  • 是的,您的运行时类路径不包含指定的类。
  • 我应该在我的 tomcat 服务器的类路径中指定它吗?
  • 你是怎么解决这个问题的?

标签: java certificate base64 private-key


【解决方案1】:

java.lang.NoClassDefFoundError 当 JVM 在运行时无法找到编译时可用的特定类时,会引发此异常。

This link will help you

【讨论】:

  • 我将 bouncycastle.jar 添加到我的类路径中
猜你喜欢
  • 2017-08-06
  • 2022-12-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多