一尘不染

Flutter中自签名证书的SSL握手错误

flutter

我正在尝试使用自签名证书连接服务器,但出现错误:
E / flutter(3781):HandshakeException:客户端中的握手错误(操作系统错误:
E / flutter(3781):CERTIFICATE_VERIFY_FAILED:主机名不匹配(ssl_cert.c :345))
代码,我在此设置证书:

String path = '/storage/sdcard0/server.crt';
SecurityContext context = new SecurityContext();
context.setTrustedCertificates(path, password: 'hello');
_client = new HttpClient(context: context);

我做错了什么?

如果未设置SecurityContext,则会收到SSL握手错误。


阅读 347

收藏
2020-08-13

共1个答案

一尘不染

我使用了HttpClient.badCertificateCallback,
这是接受任何证书的代码:

_client = new HttpClient();
_client.badCertificateCallback = (X509Certificate cert, String host, int port) => true;
2020-08-13