CodenameOne移动应用使用真实证书(非自签名)连接到https服务器时引发SSL异常

时间:2019-05-15 00:07:15

标签: amazon-web-services ssl codenameone

我有一个运行带有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使用自签名证书并部署在真实设备上的操作也同样失败。

我在这里想念什么?

1 个答案:

答案 0 :(得分:1)

Android版本中的密钥库用于签名,因此向其添加证书是不相关的,因为一旦APK签名,它就不会更改任何内容。如果该证书不适用于Android或Apple,则它不是一个很好的证书。如果您在Android上打开本机浏览器,并且网站加载正确,那么它也应该可以与该应用一起使用。