Caused by: java.security.cert.CertPathValidatorException: timestamp check failed


客户端在连接Server端https的时候出现了 以下错误,

12-27 17:52:45.976: W/System.err(10361): Caused by: java.security.cert.CertPathValidatorException: timestamp check failed
12-27 17:52:45.976: W/System.err(10361): at sun.security.provider.certpath.PKIXMasterCertPathValidator.validate(PKIXMasterCertPathValidator.java:127)
12-27 17:52:45.976: W/System.err(10361): at sun.security.provider.certpath.PKIXCertPathValidator.validate(PKIXCertPathValidator.java:215)
12-27 17:52:45.976: W/System.err(10361): at sun.security.provider.certpath.PKIXCertPathValidator.validate(PKIXCertPathValidator.java:143)
12-27 17:52:45.976: W/System.err(10361): at sun.security.provider.certpath.PKIXCertPathValidator.engineValidate(PKIXCertPathValidator.java:79)
12-27 17:52:45.976: W/System.err(10361): at java.security.cert.CertPathValidator.validate(CertPathValidator.java:301)
12-27 17:52:45.977: W/System.err(10361): at com.android.org.conscrypt.TrustManagerImpl.verifyChain(TrustManagerImpl.java:606)
12-27 17:52:45.977: W/System.err(10361): ... 27 more

12-27 17:52:45.977: W/System.err(10361): Caused by: java.security


而且还和手机设置的当前时间有关系,把时间向将来设置超过一定范围就会出现上述错误。经查是证书除了问题~,使用下面的代码可以忽略证书:


我是在Application的oncreate中调用此方法,验证OK.

    public static void disableChecks(Context context){
        try {
            SSLContext sslContext = SSLContext.getInstance("TLS");
            sslContext.init(null, new TrustManager[]{new TrustAllTrustManager()}, null);
            HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.getSocketFactory());
            HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() {
                @Override
                public boolean verify(String hostname, SSLSession session) {
                    return true;
                }
            });
        }catch (Exception e){
            e.printStackTrace();
        }
    }


import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;

import javax.net.ssl.X509TrustManager;

public class TrustAllTrustManager implements X509TrustManager {
    @Override public void checkClientTrusted(X509Certificate[] chain, String authType)
            throws CertificateException {
    }
    @Override public void checkServerTrusted(X509Certificate[] chain, String authType)
            throws CertificateException {
    }
    @Override public X509Certificate[] getAcceptedIssuers() {
        return null;
    }
}



评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值