azhon / AppUpdate

Android App update library. Android版本更新库,简单、轻量、可随意定制
Apache License 2.0
2.29k stars 336 forks source link

error: javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not foundBUG #119

Closed yzgt closed 2 years ago

yzgt commented 2 years ago

我的https下载链接下载apk, 报这个错,代码跟demo写法一样

azhon commented 2 years ago

那就是下载地址问题吧

azhon commented 2 years ago

再下载前调用信任所有https主机

 /**
  * fix https url (SSLHandshakeException) exception
  */
 private fun trustAllHosts() {
     val manager: TrustManager = object : X509TrustManager {
         override fun getAcceptedIssuers(): Array<X509Certificate> {
             return arrayOf()
         }
         override fun checkClientTrusted(chain: Array<out X509Certificate>?, authType: String?) {
             LogUtil.d(TAG, "checkClientTrusted")
         }
         override fun checkServerTrusted(chain: Array<out X509Certificate>?, authType: String?) {
             LogUtil.d(TAG, "checkServerTrusted")
         }
     }
     try {
         val sslContext = SSLContext.getInstance("TLS")
         sslContext.init(null, arrayOf(manager), SecureRandom())
         HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.socketFactory)
     } catch (e: Exception) {
         LogUtil.e(TAG, "trustAllHosts error: $e")
     }
 }
azhon commented 2 years ago

在4.1.1版本中已解决

totemtec commented 2 years ago

为啥要客户端解决?证书错误不是服务器的问题吗