【问题标题】:How to verify a certificate using .cer file in Java如何在 Java 中使用 .cer 文件验证证书
【发布时间】:2023-03-18 15:12:01
【问题描述】:

我正在尝试通过以下方式验证使用 Java 提供给我的证书

        try{
        FileInputStream fr = new FileInputStream(pathtoCertificate);
        CertificateFactory cf =   CertificateFactory.getInstance("X509");
        X509Certificate c = (X509Certificate) 
                            cf.generateCertificate(fr);
        System.out.println("++++Certificate Verification++++++++");
        PublicKey pk = c.getPublicKey();
        c.verify(pk);....//63
System.out.println("++This certificate is VALID++");
    .....

    }
    catch(CertificateException e){
                e.printStackTrace();
                System.out.println("Certificate is Invalid");
            }

但是,我不断收到以下错误

java.security.SignatureException: Signature does not match.
    at sun.security.x509.X509CertImpl.verify(Unknown Source)
    at sun.security.x509.X509CertImpl.verify(Unknown Source)
    at Main.printCertificate(Main.java:63)
    at Main.main(Main.java:41)

我只获得了一个证书文件(我需要验证)、一个私钥(对应于上述文件)和来自 CA 的证书。 我对 Java 安全性很陌生。因此,任何关于如何验证证书文件的想法都会很棒。

【问题讨论】:

    标签: java security jakarta-ee x509certificate public-key-encryption


    【解决方案1】:

    好吧,我终于想通了。对于将来可能到达这里的人。 引发错误的原因是我的证书不是 self signed 。因此,我只需要使用 CA 颁发的证书(如我的 Q 中所述)来验证公钥。 其余的保持不变。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-14
      • 1970-01-01
      • 2013-09-10
      • 1970-01-01
      • 2010-09-27
      • 2017-08-07
      • 1970-01-01
      • 2013-01-09
      相关资源
      最近更新 更多