所以我正在开发的这个移动的应用程序主要是在Flutter中,但我想保留一些原生Android和Swift中的API回调,但问题是实际的API调用可以是自定义服务器。在意识到Flutter无法读取Android上手动安装的用户证书后,我试图找到一种方法来像Chrome一样做,并询问用户“您是否要信任此证书y/n”,但是我想不出在Java上实现方法。
在flutter方面,HttpClient有一个回调部分,称为badCertificateCallback,如果应用程序中的任何地方证书不安全,它将自动引用那里,无论证书在哪里被调用,目前在flutter方面,我设置了它,以便如果用户信任某个链接,它将信任证书信息,在Android上我能做些类似的事情吗?我发现的大多数其他解决方案要么希望信任所有证书,这并不理想,要么要求用户在某个地方有一个cer文件。
1条答案
按热度按时间9jyewag01#
您可以选择以下几种方式:
简短回答:如果没有证书,您将无法成功。但它不必是
.cer
文件。由于您拒绝"无证书检查/全部信任":检查证书是更好的方法,即使您使用的是自签名证书。但是客户端需要一些东西来进行检查,并且数据通常在证书中传输。您可以将这样的证书存储为不同的文件格式。检查此页面:https://www.ssls.com/knowledgebase/what-are-certificate-formats-and-what-is-the-difference-between-them/