信任过期的证书[重复]

Posted

技术标签:

【中文标题】信任过期的证书[重复]【英文标题】:Trusting an expired certificate [duplicate] 【发布时间】:2013-04-10 22:22:26 【问题描述】:

我的客户端在与证书过期的 https 服务器通信时出现以下错误。当我们正在等待通过更新在服务器端修复它时,我想知道我们是否可以通过将过期的证书添加到我们自己的信任库来绕过这个错误?这使我们能够在等待证书更新时获得一些测试时间。

US has an end date Thu Sep 08 19:59:59 EDT 2011 which is no longer valid.
[4/17/13 19:22:55:618 EDT] 00000021 SystemOut     O   WebContainer : 0, SEND TLSv1 ALERT:  fatal, description = certificate_unknown
[4/17/13 19:22:55:620 EDT] 00000021 SystemOut     O   WebContainer : 0, WRITE: TLSv1 Alert, length = 2
[4/17/13 19:22:55:620 EDT] 00000021 SystemOut     O   WebContainer : 0, called closeSocket()
[4/17/13 19:22:55:620 EDT] 00000021 SystemOut     O   WebContainer : 0, handling exception: javax.net.ssl.SSLHandshakeException: com.ibm.jsse2.util.g: PKIX path building failed: java.security.cert.CertPathBuilderException: PKIXCertPathBuilderImpl could not build a valid CertPath.; internal cause is: 
    java.security.cert.CertPathValidatorException: The certificate issued by CN=Thawte SSL CA, O="Thawte, Inc.", C=US is not trusted; internal cause is: 

【问题讨论】:

你可能对this感兴趣。 【参考方案1】:

使用以下代码信任所有证书。 注意:不要在生产中使用它

    try 
        SSLContext ctx = SSLContext.getInstance("TLS");
        ctx.init(new KeyManager[0], new TrustManager[]  new X509TrustManager() 
            @Override
            public void checkClientTrusted(X509Certificate[] x509Certificates, String name) throws CertificateException 

            @Override
            public void checkServerTrusted(X509Certificate[] x509Certificates, String name) throws CertificateException 

            @Override
            public X509Certificate[] getAcceptedIssuers() 
                return null;
            
         , new SecureRandom());

        SSLContext.setDefault(ctx);
     catch (Exception e) 
        throw new RuntimeException(e);
    

【讨论】:

谢谢。但是我们不需要以编程方式进行。只需将其添加到信任管理器即可。

以上是关于信任过期的证书[重复]的主要内容,如果未能解决你的问题,请参考以下文章

您上传的 APK 签名的证书过早过期 [重复]

为啥 Xcode 会在钥匙串中自动安装(重复和过期的)证书? [复制]

Eclipse 中的 Android SDK 提供有关过期证书的错误 [重复]

Java 信任管理器对过期证书的行为

iPhone Developer' 不匹配任何有效的、未过期的证书/私钥对 - 但我正在创建和 Ipad 应用程序 [重复]

在调用 Web 服务时信任过期的自签名证书