SSL handshake error on self-signed cert in Flutter

2019-02-25 10:27发布

I'm trying to connect server with self-signed cert, but I take error:
E/flutter ( 3781): HandshakeException: Handshake error in client (OS Error:
E/flutter ( 3781): CERTIFICATE_VERIFY_FAILED: Hostname mismatch(ssl_cert.c:345))
Code, where I set cert:

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

What I'm doing wrong?

If I don't set SecurityContext, I get SSL handshake error.

3条回答
放荡不羁爱自由
2楼-- · 2019-02-25 10:39

I used HttpClient.badCertificateCallback
Here is a code to accept any cert:

_client = new HttpClient();
_client.badCertificateCallback = (X509Certificate cert, String host, int port) => true;
查看更多
倾城 Initia
3楼-- · 2019-02-25 10:47

You can get a valid SSL certificate for free from https://letsencrypt.org/

查看更多
SAY GOODBYE
4楼-- · 2019-02-25 10:50

Disabling antivirus solved my problem.

查看更多
登录 后发表回答