我正在尝试使用自签名证书连接服务器,但出现错误: 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握手错误。
我使用了HttpClient.badCertificateCallback, 这是接受任何证书的代码:
_client = new HttpClient(); _client.badCertificateCallback = (X509Certificate cert, String host, int port) => true;