有人可能会说这个问题是重复的,但它不是,因为其他这种类型的问题是关于自签名证书和开发环境的。
我有来自www.example.com的有效证书letsencrypt.org,但我无法建立套接字连接。我有一个nodejs服务器,在那里我使用模块“ws”,并使用flutter中的包“web_socket_channel”。
我对所有的http请求都有同样的握手问题(使用requests包),但我可以通过添加选项verify为false来绕过它:
final r = await Requests.get(app_url, verify: false);
我不喜欢这个解决方案,因为它对生产环境不安全。我想要一个适合生产环境的解决方案。
谢谢你们
2条答案
按热度按时间093gszye1#
对于每一个阅读这一点,问题不是从我的Flutter代码,它是从我的nginx配置,我必须添加以下行到
/etc/nginx/conf.d/sysmon.conf
文件:g6ll5ycj2#
您可以扩展HttpOverides类并重写HttpClient方法来更改securityContext。这主要发生在Android 7及以下的用户身上。
并在主目录中声明
如果你在后台服务中运行WebSocket通道,当WebSocket断开连接时,你需要定期重新连接到服务器,确保你在你的start方法中添加
HttpOverrides.global = MyHttpOverrides();
,如果你像这样使用flutter_background_service包,