添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
  • Manually change the date in Android settings (1 week in the future)
  • Refresh tracingSets (manually, with refresh button)
  • Error received: javax.net.ssl.SSLHandshakeException: Chain validation failed , see stacktrace below
  • (for the crash specifically, might need to retry a few times, doesn't crash 100% of the times)
  • Note: we don't want the app to crash. The usecase of changing a date is a minor issue and shouldn't be solved by itself. For this task it's enough to make sure the app won't crash when the issue arises.

    In another task, errors resulting from API calls will be handled more properly for the user: #63

    2020-05-15 14:15:09.548 13757-13910/org.privatetracer.dev.debug E/AndroidRuntime: FATAL EXCEPTION: DefaultDispatcher-worker-1
        Process: org.privatetracer.dev.debug, PID: 13757
        javax.net.ssl.SSLHandshakeException: Chain validation failed
            at com.android.org.conscrypt.ConscryptFileDescriptorSocket.startHandshake(ConscryptFileDescriptorSocket.java:229)
            at okhttp3.internal.connection.RealConnection.connectTls(RealConnection.kt:351)
            at okhttp3.internal.connection.RealConnection.establishProtocol(RealConnection.kt:310)
            at okhttp3.internal.connection.RealConnection.connect(RealConnection.kt:178)
            at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.kt:236)
            at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.kt:109)
            at okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.kt:77)
            at okhttp3.internal.connection.Transmitter.newExchange$okhttp(Transmitter.kt:162)
            at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:35)
            at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:112)
            at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:87)
            at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:82)
            at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:112)
            at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:87)
            at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:84)
            at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:112)
            at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:71)
            at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:112)
            at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:87)
            at okhttp3.logging.HttpLoggingInterceptor.intercept(HttpLoggingInterceptor.kt:215)
            at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:112)
            at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:87)
            at org.privatetracer.api.interceptors.RetryApiCallInterceptor.intercept(RetryApiCallInterceptor.kt:17)
            at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:112)
            at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:87)
            at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.kt:184)
            at okhttp3.RealCall$AsyncCall.run(RealCall.kt:136)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
            at java.lang.Thread.run(Thread.java:764)
         Caused by: java.security.cert.CertificateException: Chain validation failed
            at com.android.org.conscrypt.TrustManagerImpl.verifyChain(TrustManagerImpl.java:707)
            at com.android.org.conscrypt.TrustManagerImpl.checkTrustedRecursive(TrustManagerImpl.java:539)
            at com.android.org.conscrypt.TrustManagerImpl.checkTrustedRecursive(TrustManagerImpl.java:560)
            at com.android.org.conscrypt.TrustManagerImpl.checkTrustedRecursive(TrustManagerImpl.java:605)
            at com.android.org.conscrypt.TrustManagerImpl.checkTrusted(TrustManagerImpl.java:495)
            at com.android.org.conscrypt.TrustManagerImpl.checkTrusted(TrustManagerImpl.java:418)
            at com.android.org.conscrypt.TrustManagerImpl.getTrustedChainForServer(TrustManagerImpl.java:339)
            at android.security.net.config.NetworkSecurityTrustManager.checkServerTrusted(NetworkSecurityTrustManager.java:94)
            at android.security.net.config.RootTrustManager.checkServerTrusted(RootTrustManager.java:88)
            at com.android.org.conscrypt.Platform.checkServerTrusted(Platform.java:208)
            at com.android.org.conscrypt.ConscryptFileDescriptorSocket.verifyCertificateChain(ConscryptFileDescriptorSocket.java:404)
            at com.android.org.conscrypt.NativeCrypto.SSL_do_handshake(Native Method)
            at com.android.org.conscrypt.NativeSsl.doHandshake(NativeSsl.java:375)
    2020-05-15 14:15:09.552 13757-13910/org.privatetracer.dev.debug E/AndroidRuntime:     at com.android.org.conscrypt.ConscryptFileDescriptorSocket.startHandshake(ConscryptFileDescriptorSocket.java:224)
            	... 29 more
         Caused by: java.security.cert.CertPathValidatorException: Response is unreliable: its validity interval is out-of-date
            at sun.security.provider.certpath.PKIXMasterCertPathValidator.validate(PKIXMasterCertPathValidator.java:135)
            at sun.security.provider.certpath.PKIXCertPathValidator.validate(PKIXCertPathValidator.java:222)
            at sun.security.provider.certpath.PKIXCertPathValidator.validate(PKIXCertPathValidator.java:140)
            at sun.security.provider.certpath.PKIXCertPathValidator.engineValidate(PKIXCertPathValidator.java:79)
            at java.security.cert.CertPathValidator.validate(CertPathValidator.java:301)
            at com.android.org.conscrypt.TrustManagerImpl.verifyChain(TrustManagerImpl.java:703)
            	... 42 more
         Caused by: java.security.cert.CertPathValidatorException: Response is unreliable: its validity interval is out-of-date
            at sun.security.provider.certpath.OCSPResponse.verify(OCSPResponse.java:619)
            at sun.security.provider.certpath.RevocationChecker.checkOCSP(RevocationChecker.java:709)
            at sun.security.provider.certpath.RevocationChecker.check(RevocationChecker.java:363)
            at sun.security.provider.certpath.RevocationChecker.check(RevocationChecker.java:337)
            at sun.security.provider.certpath.PKIXMasterCertPathValidator.validate(PKIXMasterCertPathValidator.java:125)
            	... 47 more
        	Suppressed: java.security.cert.CertPathValidatorException: Unable to determine revocation status due to network error
            at sun.security.provider.certpath.RevocationChecker.checkCRLs(RevocationChecker.java:562)
            at sun.security.provider.certpath.RevocationChecker.checkCRLs(RevocationChecker.java:465)
            at sun.security.provider.certpath.RevocationChecker.check(RevocationChecker.java:394)
            		... 49 more
         Caused by: sun.security.provider.certpath.PKIX$CertStoreTypeException: java.io.IOException: Cleartext HTTP traffic to crl.microsoft.com not permitted
            at sun.security.provider.certpath.URICertStore.engineGetCRLs(URICertStore.java:430)
            at java.security.cert.CertStore.getCRLs(CertStore.java:190)
            at sun.security.provider.certpath.DistributionPointFetcher.getCRL(DistributionPointFetcher.java:245)
            at sun.security.provider.certpath.DistributionPointFetcher.getCRLs(DistributionPointFetcher.java:189)
            at sun.security.provider.certpath.DistributionPointFetcher.getCRLs(DistributionPointFetcher.java:121)
            at sun.security.provider.certpath.RevocationChecker.checkCRLs(RevocationChecker.java:552)
            		... 51 more
         Caused by: java.io.IOException: Cleartext HTTP traffic to crl.microsoft.com not permitted
            at com.android.okhttp.HttpHandler$CleartextURLFilter.checkURLPermitted(HttpHandler.java:115)
            at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:458)
            at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:407)
            at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:244)
            at sun.security.provider.certpath.URICertStore.engineGetCRLs(URICertStore.java:396)
            		... 56 more
    Edited by Patrick