基于Nginx的https服务
简单总结如何在 Nginx 配置 HTTPS 服务器,让自己站点上『绿锁』。
Nginx 配置 HTTPS 并不复杂,
主要有两个步骤:
签署第三方可信任的 SSL 证书 和 配置 HTTPS
有一个免费申请证书的网站https://freessl.org/
推荐一下。
https服务
对传输内容进行加密以及身份验证。
为什么需要https
- http不安全,传输数据被中间人盗用,信息泄露
- 数据内容劫持,篡改
对称加密和非对称加密
https加密协议原理
中间人伪造客户端和服务器
如何解决
https加密原理
1、发起ssl连接,非对称加密
2、服务端将公钥发送给客户端
3、客户端用公钥对对称加密的密码进行加密 发送给服务端
4、之后客户端和服务端进行对称密钥传输数据
配置docker(443)
docker run -d -p 443:443 --name nginx_443 nginx_443:latest /sbin/init nginx -c /etc/nginx/nginx.conf
conf文件配置
server { listen 443; server_name localhost; ssl on; ssl_certificate /etc/nginx/ssl_key/jesonc.crt; ssl_certificate_key /etc/nginx/ssl_key/jesonc.key; location / { root /usr/share/nginx/html; #limit_conn conn_zone 1; #limit_req zone=req_zone; # limit_req zone=req_zone burst nodelay; # limit_req zone=req_zone burst nodelay; index index.html index.htm; } # my config location /mystatus { stub_status; } #error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } }
测试结果
https服务优化
- 激活keepalive长连接
- 设置ssl session缓存
如果你用的是云服务器的话,无论是阿里云或者腾讯云亦或其他云,这些云服务器厂商基本上都会提供安全组配置的,所以你需要到你的云服务器控制台,针对该服务器进行安全组配置(说明白些,就是开放端口),配置完安全组之后,再访问一次。
如果你配置了安全组之后,依旧无法访问的话,可能原因是你的服务器开了防火墙。
判断防火墙状态
systemctl status firewalld