第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

flutter https雙向驗證的證書配置

標簽:
Android iOS

这里就不管是那个网络请求工具的第三方,直接操作HttpClient类来操作。
1.先说明双向验证的证书种类:
client_cert.pem 客户端证书(包含客户端公钥)
client_private.pem 客户端私钥
client_public.pem 客户端公钥
使用目的:验证客户端的合法性

sever_cert.pem 服务器证书(包含服务端公钥)
sever_public.pem 服务器端公钥 (存放在Client或者发送给Client)
sever_private.pem 服务器端私钥
使用目的:验证服务器端的合法性

.p12是证书和私钥的集合文件 带有密码:xxxx

2.客户端的配置
以Dio请求工具为例 客户端的配置 客户端的包里用到 服务器端公钥、客户端私钥、客户端的证书(包含公钥)这三个。(顺带提一句,Swift原生只需要服务器公钥和客户端的.p12文件就可以了)

List<int> caData = (await rootBundle.loadString("pubkey/sever_cert.pem")).buffer.asUint8List()
List<int> clientCertData = (await rootBundle.loadString("pubkey/client_cert.pem")).buffer.asUint8List()
List<int> clientPrivateData = (await rootBundle.loadString("pubkey/client_private.pem")).buffer.asUint8List()
(dio.httpClientAdapter as DefaultHttpClientAdapter).onHttpClientCreate  = (client) {
      SecurityContext sc = new SecurityContext(withTrustedRoots: true);
      sc.setTrustedCertificatesBytes(caData); //设置服务器端的公钥,为了验证服务器端
      sc.useCertificateChainBytes(clientCertData);//设置客户端证书到证书链
      sc.usePrivateKeyBytes(clientPrivateData, password:'wiii');//设置私钥 虽然源码里的注释说pem不用密码,但是这里必须
      HttpClient httpClient = new HttpClient(context: sc);
      httpClient.badCertificateCallback=(X509Certificate cert, String host, int port){
        return true;
      };
      return httpClient;
    };

3.抓包的结果

只验证服务器端的情况,抓不到包,因为在请求服务器连接的时候,被抓包工具截断,抓包工具扮演服务器,不被信任,通讯中断,抓包工具里只能获取到请求域名

只验证客户端的情况,能抓到请求,但是在抓包工具抓到客户端的请求之后发给客户端,此时抓包工具扮演客户端,不被服务器信任,通讯中断,没有返回数据

點擊查看更多內(nèi)容
1人點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優(yōu)惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號

舉報

0/150
提交
取消