基于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

 

posted @ 2020-10-22 22:37  随心的风  阅读(93)  评论(0编辑  收藏  举报