本文最后更新于:2024年5月7日 下午
Nginx 反向代理可以方便地实现服务器网络配置,本文记录使用 Nginx 容器进行反向代理 https 服务的方法。
预备知识
当前环境
介绍一下我当前的实验环境,有相似需求和环境的同志可以参考我的操作流程
- 本机有部署在 IP:Port 的某个网页服务器
- 服务器没有配置 https,仅提供 http 协议服务
- 安装好了docker
- 准备安装 nginx docker
- 目的:以 https 协议对外反向代理本地 http 服务
操作流程
创建 Nginx 容器
- 先在本地创建共享文件夹
/share/ssl
1 |
|
创建SSL证书
我是直接在 nginx 容器中创建的证书,也可以在服务器生成导入到容器中
- 创建方法参考 ssl 证书生成
自签名证书会在登陆网站时提示证书不被CA信任,需要手动添加到本地信任证书列表中
想要比较方便地访问需要生成CA证书
事实上我自己没有成功生成出来,最终使用的SSL证书是在百度智能云申请的
- 获取 server_private.key, server.crt 文件
- 将证书放在
/ssl
文件夹中
1 |
|
Nginx 配置
- 在
/etc/nginx/conf.d
文件夹中创建配置文件 test.conf
1 |
|
- 配置完成后重启 nginx 服务
1 |
|
- 配置好后可以查看是否配置成功
1 |
|
如果有错误会在命令输入后提示
- 新版内核的 Linux 发行版要求密钥长度最少2048位,1024位的可能报错
1
SSL: error:140AB18F:SSL routines:SSL_CTX_use_certificate:ee key too small
测试
-
访问 本机 IP:9443 端口
-
地址仅能以 https 协议访问
- https 后可以看到被代理的网页内容:
-
而且域名如果不是注册证书时使用的 Common Name 会给出不安全的提示
-
正确配置证书后可以正常访问:
参考资料
- https://www.jb51.net/article/154007.htm
- https://www.jianshu.com/p/5f9bd492f186
- https://blog.csdn.net/aptx4869_li/article/details/114242547
- https://blog.csdn.net/weixin_33939380/article/details/92536700
- https://blog.csdn.net/zsl129/article/details/54664508
- https://www.cnblogs.com/jun-zi/p/12189434.html
- https://www.cnblogs.com/mouseleo/p/14013226.html
文章链接:
https://www.zywvvd.com/notes/coding/internet/nginx-docker-https/nginx-docker-https/
“觉得不错的话,给点打赏吧 ୧(๑•̀⌄•́๑)૭”
微信支付
支付宝支付
创建 Nginx docker 容器反向代理 https
https://www.zywvvd.com/notes/coding/internet/nginx-docker-https/nginx-docker-https/