无法从 Android 应用程序连接到我的 HTTPS 站点:找不到证书路径的信任锚
Lost ability to connect to my HTTPS site from Android application: Trust anchor for certification path not found
我有两个移动应用程序,它们从内部访问我的网站 https://example.com。最近,我把证书延长了一年,并在nginx的配置上更换了它。
现在 Web 浏览器可以很好地打开站点,iOS 应用程序可以很好地打开站点,但是 Android 应用程序无法打开它说
Caused by: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
使用代码
myUrl = URL("https://example.com")
try {
conn = myUrl.openConnection() as HttpsURLConnection
conn.readTimeout = 10000
conn.connectTimeout = 15000
conn.requestMethod = "POST"
conn.doInput = true
conn.doOutput = true
conn.setChunkedStreamingMode(0)
val postData = URLEncoder.encode(...
val os = conn.outputStream
它想要什么以及如何解决?
重新安装没有帮助。 运行 在调试器下显示此错误。
这是我网站上的证书问题,而不是应用程序中的证书问题。由于某种原因,只有 Android 个应用程序对此问题敏感。 iOS 应用程序和所有 Web 浏览器都报告证书正常。 SSL
检查像 digicert.com 这样的网站是否报告链问题。
我所做的是我拿了 nginx
指向的这个文件
ssl_certificate /etc/ssl/certs/my_certificate.crt;
里面只有一个证书,然后粘贴了我的提供商提供的另外两个证书。这些额外的证书被命名为“root”和“intermediate”。
之后那个问题就解决了。
我有两个移动应用程序,它们从内部访问我的网站 https://example.com。最近,我把证书延长了一年,并在nginx的配置上更换了它。
现在 Web 浏览器可以很好地打开站点,iOS 应用程序可以很好地打开站点,但是 Android 应用程序无法打开它说
Caused by: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
使用代码
myUrl = URL("https://example.com")
try {
conn = myUrl.openConnection() as HttpsURLConnection
conn.readTimeout = 10000
conn.connectTimeout = 15000
conn.requestMethod = "POST"
conn.doInput = true
conn.doOutput = true
conn.setChunkedStreamingMode(0)
val postData = URLEncoder.encode(...
val os = conn.outputStream
它想要什么以及如何解决?
重新安装没有帮助。 运行 在调试器下显示此错误。
这是我网站上的证书问题,而不是应用程序中的证书问题。由于某种原因,只有 Android 个应用程序对此问题敏感。 iOS 应用程序和所有 Web 浏览器都报告证书正常。 SSL
检查像 digicert.com 这样的网站是否报告链问题。
我所做的是我拿了 nginx
ssl_certificate /etc/ssl/certs/my_certificate.crt;
里面只有一个证书,然后粘贴了我的提供商提供的另外两个证书。这些额外的证书被命名为“root”和“intermediate”。
之后那个问题就解决了。