我有一个运行带有https端点的spring boot服务器应用程序的Amazon AWS环境。 (https://www.myapp.com:8443)服务器上已经安装了www.myapp.com的真实(未自签名)证书。
通过真实设备上的Android发布应用程序进行连接(通过OTA电子邮件安装)时,我看到了例外情况:
Exception: javax.net.ssl.SSLHandshakeException -
java.security.cert.CertPathValidatorException: Trust anchor for
certification path not found.
javax.net.ssl.SSLHandshakeException:
java.security.cert.CertPathValidatorException: Trust anchor for
certification path not found.
在模拟器中,我已经将真实站点证书添加到了IntelliJ java cacerts文件中,并且可以正常工作。在模拟器中,我对AWS框的所有https调用都可以正常工作。
在构建Android应用时,我将真实证书添加到了密钥库中,并通过CN1首选项为Android设置指定了该密钥库。这样可以运行良好,但是在实际设备上运行时会产生上述异常。
通过CN1使用自签名证书并部署在真实设备上的操作也同样失败。
我在这里想念什么?
答案 0 :(得分:1)
Android版本中的密钥库用于签名,因此向其添加证书是不相关的,因为一旦APK签名,它就不会更改任何内容。如果该证书不适用于Android或Apple,则它不是一个很好的证书。如果您在Android上打开本机浏览器,并且网站加载正确,那么它也应该可以与该应用一起使用。