3.反向代理nginx之https

这个说简单也简单,说难也难,看怎么配置的
根据下图
客户浏览端--①--反向代理端--②--后端web服务器
方式有二
①.仅要求浏览端到反代端保密通迅。
②.反代端到后端也需要保密通迅。

实现这个不单单是配置nginx就行了,前提是,你要先去申请证书。
这个证书来源,
一是,你用openssl生成自制证书,当然自家的没有可信度,大部分浏览器不承认。
除非自己用来测试。
二是,通过申请免费的Let’s encrypt通配符证书,大部分浏览器认可。
证书申请过程,参照另一章节。

这里我们着重还是要讲配置:
①浏览端到反代端过程配置

server {
listen 443 ssl http2;
server_name ~^(www|blog)\.freebasic\.cn$;
#浏览器到反代端使用的-证书
ssl_certificate /etc/letsencrypt/live/freebasic.cn/fullchain.pem;
#浏览器到反代端使用的-私匙
ssl_certificate_key /etc/letsencrypt/live/freebasic.cn/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
location / {
#反代到上游使用http
include proxy_params;
proxy_pass http://127.0.0.1:80;
}
}

②反代端到后端过程配置
这里浏览端与反代端设置同上
反代端与后端分两种情况,
一是
忽略证书错误
关闭证书的校验,表示反向端信任证书,不做校验。
proxy_ssl_verify off;
二是,需要校验,比较复杂,这又分两种证书的情况。
参照:https://blog.csdn.net/weixin_37569048/article/details/88868192

server {
listen 443 ssl http2;
server_name ~^(www|blog)\.freebasic\.cn$;
ssl_certificate /etc/letsencrypt/live/freebasic.cn/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/freebasic.cn/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
# if ($ssl_protocol = "") {return 301 https://$host$request_uri;}
location / {
if ($request_method = OPTIONS) {
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,OPTIONS;
return 204;
}
include proxy_params;
resolver 114.114.114.114 8.8.8.8;
proxy_ssl_server_name on;
# proxy_pass https://127.0.0.1:4433;
proxy_pass $scheme://$host:4433$request_uri;
proxy_ssl_verify off;
# proxy_ssl_certificate /etc/nginx/ssl/server.crt;
# proxy_ssl_certificate_key /etc/nginx/ssl/server.key;
# proxy_ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
# proxy_ssl_ciphers HIGH:!aNULL:!MD5;
# proxy_ssl_trusted_certificate /etc/nginx/trusted_ca_cert.crt;
# proxy_ssl_verify on;
# proxy_ssl_verify_depth 2;
# proxy_ssl_session_reuse on;
}
}
点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注