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.pem
CA证书简介 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