Java 无法将sun.security.x509.X509CertImpl强制转换为iaik.x509.X509Certificate

Java 无法将sun.security.x509.X509CertImpl强制转换为iaik.x509.X509Certificate,java,x509certificate,keystore,entrust,iaik-jce,Java,X509certificate,Keystore,Entrust,Iaik Jce,我从JKS密钥库提取了一个证书,并试图将其强制转换为iaik.x509.X509Certificate。无法将sun.security.x509.X509CertImpl转换为iaik.x509.X509Certificate。 是否有方法手动将其写入iaik.x509.x509证书? 代码片段- KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType()); FileInputStre

我从JKS密钥库提取了一个证书,并试图将其强制转换为iaik.x509.X509Certificate。无法将sun.security.x509.X509CertImpl转换为iaik.x509.X509Certificate。 是否有方法手动将其写入iaik.x509.x509证书? 代码片段-

        KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType());
        FileInputStream in = new FileInputStream(keystorePath);
        char[] keyPasswordChars = keyPassword == null ? new char[0] : keyPassword.toCharArray();
        try {
                trustStore.load(in, keyPasswordChars);
        } finally   {
                in.close();
        }
        Certificate cert = trustStore.getCertificate(alias);
        if (cert != null) {
            iaik.x509.X509Certificate  x509 = (iaik.x509.X509Certificate) cert;
            return x509;
        }

iaik.x509.x509证书来自委托-enttoolkit.jar

为什么?您不应该直接使用这两个类中的任何一个,而且您肯定永远不会通过Java
keystore
API直接从Java密钥库文件获得IAIK证书对象。您应该使用
java.security.cert.X509Certificate
或者甚至可能使用
java.security.cert.Certificate
,无论
密钥库
API实际返回什么。正如user207421指出的,您是否出于任何特定原因需要iaik证书对象?是,需要iaik对象,因为Trust toolkit有一个CertVerifier类,该类只接受iaik.X509证书。我的证书已使用java.security.cert.certificate保存到密钥库中,但现在必须将iaik.x509.X509Certificate传递给CertVerifier方法。我将探讨如何将证书保存到密钥库中,作为iaik.x509.X509Certificate。