系统使用https,http转https,caddy,nginx,WAF
几种方案:
一、caddy https
- 优点:caddy自带https证书,不需要申请证书就可以使用;当然也可以使用自己的证书
- 官网文档:https://caddyserver.com/docs/
-
caddy2的配置:启用https,并将https请求转发到80端口(nginx)
{ http_port 81 } www.toppgo.com { reverse_proxy 127.0.0.1:80 } 说明: 1. http_port:自定义caddy的http端口(由于80已经被nginx占用了,这里改了,实际上没用) 2. reverse_proxy:反向代理 caddy2常用命令: 1. 使用caddy help查看 2. caddy strat、caddy reload 、caddy stop
二、nginx https
- nginx生成并配置https(配置完后,就可以https访问了)
- 生成证书参考:https://www.cnblogs.com/fengyuduke/p/11232662.html
- Nginx官网文档:http://nginx.org/en/docs/http/configuring_https_servers.html
- 注意:自己生成的证书,不能用于生产环境,会显示不安全;关键配置如下:
server { # listen 80; # 一个server同时支持http和https也是可以的 listen 443 ssl; server_name ~^api\.(.+)?\.(com|com.cn|tech|cn)$; #ssl on; ssl_certificate /etc/nginx/crt/server.crt; ssl_certificate_key /etc/nginx/crt/server.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; location / { proxy_pass http://parcels-web; } }
-
测试环境配置http转https(所有http请求转发到https上)
## api 访问强制跳转到https server { listen 80; server_name api.parcels.tech; if ($request_method ~* GET) { return 301 https://$server_name$request_uri; } if ($request_method ~* POST) { return 307 https://$server_name$request_uri; } } 说明: 1. 301:永久重定向,主要用于GET请求;POST参数丢失 2. 307:临时重定向,可以将POST的参数带过去 3. nginx重定向详细说明:https://may90.com/tech/redirect-technology.html