我们没有将Symantec列入受信任的密钥库默认值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我们没有将Symantec列入受信任的密钥库默认值相关的知识,希望对你有一定的参考价值。

验证证书是否由可信CA签名。我试图使用getAcceptedIssuers()方法获取Trusted X 509证书列表。

X509Certificate[] cert2= getAcceptedIssuers();

在该列表中,通用名称(Symantec Class 3 EV SSL CA-G3)不可用。如何在默认的信任管理器中获得此值?

 @Override
public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
    if (!false) {
        X509Certificate cert=chain[0];
        Log.d("bucky validate 0",chain[0].getIssuerDN().getName());
        boolean found = false;
        try {
            String dns= String.valueOf(cert.getIssuerDN());
            Log.d("bucky validate",dns);
            X509Certificate[] cert2= getAcceptedIssuers();
            int length=cert2.length;
            for (int i=0;i<length;i++){
               String dnName= String.valueOf(cert2[i].getIssuerDN());
                Log.d("bucky validate2",dnName);
            }
            cert.checkValidity(new Date());
        } catch (Exception e) {
            e.printStackTrace();
        }}


@Override
public X509Certificate[] getAcceptedIssuers()
{
    return defaultTrustManager.getAcceptedIssuers() ;
}



public ApplicationTrustManager() throws NoSuchAlgorithmException, KeyStoreException {

    TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
    tmf.init((KeyStore) null);
    defaultTrustManager = (X509TrustManager) tmf.getTrustManagers()[0];
}
答案

最后,我得到了答案。这是一个小错误。

     @Override
public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException 

链数组的最后一个值,我得到了可信证书名称。

以上是关于我们没有将Symantec列入受信任的密钥库默认值的主要内容,如果未能解决你的问题,请参考以下文章

使用签名中包含的密钥正确验证了签名,但该密钥不受信任

签名使用签名中包含的密钥正确验证,但该密钥不受信任

信任存储与密钥存储 - 使用 keytool 创建

jetty SSL如何与java密钥库和多个别名一起使用

信任库中信任哪些证书?

重新定义默认 SSL 上下文时找不到 Java 密钥库