HTTPS
HTTPS 协议是由 HTTP + TLS/SSL 协议构建的可进行加密传输、身份认证的网络协议,主要通过数字证书、加密算法、非对称密钥等技术完成互联网数据传输加密,实现互联网传输安全保护。
- 服务端向数字证书认证机构,提出 公钥证书申请。
- 服务端网站,保存 私钥文件,SSL证书(公钥证书)(SSL公钥证书,包含由私钥文件生成的公钥)。
- 客户端访问网站,服务端发送 SSL证书。
- 客户端验证 SSL证书有效性,生成随机密钥,并用SSL证书进行公钥加密。
- 客户端将 公钥加密过的随机密钥,发送给服务端。
- 服务端通过 私钥解密,得到客户端发过来的随机密钥。
- 服务端和客户端,都通过同样的 随机密钥,对所有传输数据,进行对称加密和解密。
1-2前两个步骤,为 SSL证书申请; 3-7后五个步骤,为客户端和服务端网站之间的 数据传输.
SSL和TLS
SSL: SSL(Secure Socket Layer 安全套接层)是TCP/IP协议中基于HTTP之下,TCP之上的一个可选协议层。
为了解决HTTP数据明文传输的隐患,网景(Netscap)公司推出了SSL。而越来越多的人也开始使用HTTPS(HTTP+SSL)。
TLS: HTTPS的推出受到了很多人的欢迎,在SSL更新到3.0时, 互联网工程任务组(IETF)对SSL3.0进行了标准化,并添加了少数机制,并将其更名为TLS1.0(Transport Layer Security 安全传输层协议)。
TLS记录格式与SSL记录格式相同,但版本号的值不同,TLS的版本1.0使用的版本号为SSLv3.1。
CA证书
HTTPS网站服务端的SSL证书(NGINX)配置示例:
#   ssl_certificate /ssl/sitename/fullchain.cer;
    ssl_certificate /ssl/sitename/sitename.pem;
    ssl_certificate_key /ssl/sitename/sitename.key;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;MITM证书
mitmproxy程序运行生成证书如下:
服务端私钥
- mitmproxy-ca.pem PEM格式, 证书私钥
- mitmproxy-ca.p12 PKCS12格式, 证书私钥
客户端公钥
- mitmproxy-ca-cert.pem PEM格式, 适用多数 非Windows平台。如Linux macOS iOS
- mitmproxy-ca-cert.p12 PKCS12格式, 适用 Windows平台
- mitmproxy-ca-cert.cer PEM格式, 适用 部分Android
curl --proxy 127.0.0.1:8080 --cacert ~/.mitmproxy/mitmproxy-ca-cert.pem https://example.com/
wget -e https_proxy=127.0.0.1:8080 --ca-certificate ~/.mitmproxy/mitmproxy-ca-cert.pem https://example.com/客户端请求HTTPS链接时,指定公钥加密
openssl genrsa -out cert.key 2048
# (Specify the mitm domain as Common Name, e.g. \*.google.com)
openssl req -new -x509 -key cert.key -out cert.crt
cat cert.key cert.crt > cert.pemCA证书简介 https://docs.mitmproxy.org/stable/concepts-certificates/
彻底搞懂HTTPS的加密原理 https://zhuanlan.zhihu.com/p/43789231
简述HTTPS中的加密算法 https://www.jiamisoft.com/blog/29012-https-jm.html
TLS和SSL证书有什么区别 https://blog.csdn.net/jiamisoft/article/details/125410388
HTTP和HTTPS协议,看一篇就够了 https://blog.csdn.net/xiaoming100001/article/details/81109617
 沙滩星空的博客
沙滩星空的博客