Java Android服务中的MQTT连接错误

Java Android服务中的MQTT连接错误,java,android,ssl-certificate,android-service,mqtt,Java,Android,Ssl Certificate,Android Service,Mqtt,我有一个Android服务,它使用“org.eclipse.paho.Android.service.MqttAndroidClient”通过ssl使用以下地址方案连接到mqtt服务器:ssl://mybroker.address.com:8883 当应用程序在前台和后台运行时,一切正常,但当我关闭应用程序时,Android服务重新排序,mqtt客户端尝试重新连接到mqtt服务器,但失败 设备日志显示以下异常: MqttException (0) - javax.net.ssl.SSLHands

我有一个Android服务,它使用“org.eclipse.paho.Android.service.MqttAndroidClient”通过ssl使用以下地址方案连接到mqtt服务器:
ssl://mybroker.address.com:8883

当应用程序在前台和后台运行时,一切正常,但当我关闭应用程序时,Android服务重新排序,mqtt客户端尝试重新连接到mqtt服务器,但失败

设备日志显示以下异常:

MqttException (0) - javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
   at org.eclipse.paho.client.mqttv3.internal.ExceptionHelper.createMqttException(ExceptionHelper.java:38)
   at org.eclipse.paho.client.mqttv3.internal.ClientComms$ConnectBG.run(ClientComms.java:736)
   at java.lang.Thread.run(Thread.java:764)
Caused by: javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
   at com.android.org.conscrypt.ConscryptFileDescriptorSocket.startHandshake(ConscryptFileDescriptorSocket.java:219)
   at org.eclipse.paho.client.mqttv3.internal.SSLNetworkModule.start(SSLNetworkModule.java:159)
   at org.eclipse.paho.client.mqttv3.internal.ClientComms$ConnectBG.run(ClientComms.java:722)
   ... 1 more
Caused by: java.security.cert.CertificateException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
   at com.android.org.conscrypt.TrustManagerImpl.checkTrustedRecursive(TrustManagerImpl.java:646)
   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:197)
   at com.android.org.conscrypt.ConscryptFileDescriptorSocket.verifyCertificateChain(ConscryptFileDescriptorSocket.java:399)
   at com.android.org.conscrypt.NativeCrypto.SSL_do_handshake(Native Method)
   at com.android.org.conscrypt.SslWrapper.doHandshake(SslWrapper.java:374)
   at com.android.org.conscrypt.ConscryptFileDescriptorSocket.startHandshake(ConscryptFileDescriptorSocket.java:217)
   ... 3 more
Caused by: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
   ... 14 more
mqtt服务器使用具有以下路径的公共证书:

    Go Daddy Class 2 Certification Authorit  
     |_ Go Daddy Root Certificate Authority - G2  
        |_Go Daddy Secure Certificate Authority- G2
          |_*.my.domain
我尝试了两种不同的设备(Android 7.0和Android 8.1.0),它们都在系统可信证书中列出了“Go Daddy Root Certificate Authority-G2”

来自应用程序和服务的其他HTTPS请求似乎总是可以正常工作