出现SSLHandshakeException通过互联网
问题描述:
连接时,在我的Android应用我可以连接到这个网址与本地的无线网络没有任何问题:出现SSLHandshakeException通过互联网
https://didgahmobile.chargoon.net/
然而,当我试图通过互联网来连接例如使用移动数据或通过代理连接,我在android应用中获得SSLHandshakeException
。桌面和移动Chrome浏览器也显示消息"Your connection is not private"
。
javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
我检查了服务器防火墙,并且没有IP地址的限制。
我也有一个不同的情况与另一个https
的网址。在这种情况下,我第一次通过本地wifi连接后,我可以通过代理或移动日期连接,但在全新安装后连接或使用移动数据或代理清除数据时抛出相同的SSLHandshakeException
。
那么问题是什么?
答
检查这一点,如果你usign Android的7,因为你必须添加一些配置:
<network-security-config>
<domain-config>
<domain includeSubdomains="true">yourDomain.com</domain>
<!-- like: didgahmobile.chargoon.net -->
<trust-anchors>
<!-- Trust preinstalled CAs -->
<certificates src="system" />
<!-- Additionally trust user added CAs -->
<certificates src="user" />
</trust-anchors>
</domain-config>
</network-security-config>
<application
android:name="yourappname"
...
android:networkSecurityConfig="@xml/network_security_config">
我在所有的Android版本中这个问题。然而,我用这个解决方案,它并没有解决在Android 8和更早的问题。谢谢。 –