如何绕过 SSL 证书验证?

Posted

技术标签:

【中文标题】如何绕过 SSL 证书验证?【英文标题】:How to Bypass SSL Certificate Verification in flutter? 【发布时间】:2021-02-08 11:40:47 【问题描述】:

错误:握手异常:客户端中的握手错误(操作系统错误:CERTIFICATE_VERIFY_FAILED:自签名证书(handshake.cc:345)

【问题讨论】:

查看这篇文章:***.com/questions/54285172/… 【参考方案1】:

您需要配置您的 HttpService 以使用自签名 SSL 本地服务器。像这样:


import 'dart:io';
import 'dart:convert';
class HttpService 
  Future<dynamic> sendRequestToServer(dynamic model, String                         reqType, bool isTokenHeader, String token) async 
      HttpClient client = new HttpClient();
      client.badCertificateCallback =((X509Certificate cert, String  host, int port) => true);
      HttpClientRequest request = await         client.postUrl(Uri.parse("https://$serverConstants.serverUrl$reqType"));
      request.headers.set('Content-Type', 'application/json');
      if(isTokenHeader)
         request.headers.set('Authorization', 'Bearer $token');
      
     request.add(utf8.encode(jsonEncode(model)));
     HttpClientResponse result = await request.close();
     if(result.statusCode == 200) 
        return jsonDecode(await result.transform(utf8.decoder)
        .join());
      else 
        return null;
     
   


阅读更多来自here。

【讨论】:

这个函数怎么调用?

以上是关于如何绕过 SSL 证书验证?的主要内容,如果未能解决你的问题,请参考以下文章

轻松把玩HttpClient之配置ssl,采用绕过证书验证实现https

如何使用urllib2.urlopen检查(不绕过)SSL证书?

在java中怎么验证ssl证书的有效性

httpclient绕过证书验证进行HTTPS请求

如何忽略 Apache HttpComponents HttpClient 5.1 中的 SSL 证书错误

如何申请免费SSL证书?