自签名证书实现HTTPS单双向认证

自签名证书生成过程

对于向权威机构申请过证书的网络地址,用OkHttp或者HttpsURLConnection都可以直接访问,不需要做额外的事情。但是申请证书要$$的,所以开发的时候我们接口经常是使用自签名证书,或者即使上线了也还是用自签名的

阅读全文 »

SSL单向认证和双向认证说明

SSL单向认证具体过程

  • 客户端的浏览器向服务器传送客户端SSL协议的版本号,加密算法的种类,产生的随机数,以及其他服务器和客户端之间通讯所需要的各种信息。
  • 服务器向客户端传送SSL协议的版本号,加密算法的种类,随机数以及其他相关信息,同时服务器还将向客户端传 送自己的证书。
  • 客户利用服务器传过来的信息验证服务器的合法性,服务器的合法性包括:证书是否过期,发行服务器证书的CA是否可靠,发行者证书的公钥能否正确解开服务器证书的”发行者的数字签名,服务器证书的域名是否和服务器的
  • 实际域名相匹配。如果合法性验证没有通过,通讯将断开;如果合法性验证通过,将继续进行第四步。
  • 用户端随机产生一个用于后面通讯的”对称密码”,然后用服务器的公钥(服务器的公钥从第二步中的服务器的证书中获得)对其加密,然后将加密后的”预主密码”传给服务器。
  • 如果服务器要求客户的身份认证(在握手过程中为可选),用户可以建立一个随机数然后对其进行数据签名,将这个含有签名的随机数和客户自己的证书以及加密过的”预主密码”一起传给服务器。
阅读全文 »

Android WebView缓存优化

一、前言

对于WebView的性能,给人最直观的莫过于:打开速度比native慢。
是的,当我们打开一个WebView页面,页面往往会慢吞吞的loading很久,若干秒后才出现你所需要看到的页面。这是为什么呢?

阅读全文 »