HTTPS
在学习如何配置 HTTPS
之前,我们先来简单回顾下 HTTPS
的工作流程是怎么样的?它是如何进行加密保证安全的?
HTTPS 工作流程
-
客户端(浏览器)访问
https://www.baidu.com
百度网站; -
百度服务器返回
HTTPS
使用的CA
证书; -
浏览器验证
CA
证书是否为合法证书; -
验证通过,证书合法,生成一串随机数并使用公钥(证书中提供的)进行加密;
-
发送公钥加密后的随机数给百度服务器;
-
百度服务器拿到密文,通过私钥进行解密,获取到随机数(公钥加密,私钥解密,反之也可以);
-
百度服务器把要发送给浏览器的内容,使用随机数进行加密后传输给浏览器;
-
此时浏览器可以使用随机数进行解密,获取到服务器的真实传输内容;
这就是 HTTPS
的基本运作原理,使用对称加密和非对称机密配合使用,保证传输内容的安全性。
配置证书
下载证书的压缩文件,里面有个 Nginx
文件夹,把 xxx.crt
和 xxx.key
文件拷贝到服务器目录,再进行如下配置:
server {
listen 443 ssl http2 default_server; # SSL 访问端口号为 443
server_name lion.club; # 填写绑定证书的域名(我这里是随便写的)
ssl_certificate /etc/nginx/https/lion.club_bundle.crt; # 证书地址
ssl_certificate_key /etc/nginx/https/lion.club.key; # 私钥地址
ssl_session_timeout 10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # 支持ssl协议版本,默认为后三个,主流版本是[TLSv1.2]
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}