Nginx 反向代理可以方便地实现服务器网络配置,本文记录使用 Nginx 容器进行反向代理 https 服务的方法。
介绍一下我当前的实验环境,有相似需求和环境的同志可以参考我的操作流程
/share/ssl
docker run --name=nginx -p 9443:443 -d --restart=always -v /share/ssl:/ssl nginx
我是直接在 nginx 容器中创建的证书,也可以在服务器生成导入到容器中
自签名证书会在登陆网站时提示证书不被CA信任,需要手动添加到本地信任证书列表中 想要比较方便地访问需要生成CA证书 事实上我自己没有成功生成出来,最终使用的SSL证书是在百度智能云申请的
/ssl
文件夹中:/ssl# ls
ca.csr ca.key ca_public.crt ca_public.srl server.crt server.csr server_private.key server_public.pem
/etc/nginx/conf.d
文件夹中创建配置文件 test.confserver {
listen 443 ssl;
listen [::]:443 ssl;
# server_name localhost;
ssl_certificate /ssl/key1/server.crt;
ssl_certificate_key /ssl/key1/server.key;
location / {
proxy_set_header X-FORWARDED-FOR $remote_addr;
proxy_set_header X-FORWARDED-PROTO $scheme;
proxy_set_header Host $http_host;
proxy_pass http://192.168.xxx.xxx:xxxx;
}
}
service nginx reload
nginx
如果有错误会在命令输入后提示
SSL: error:140AB18F:SSL routines:SSL_CTX_use_certificate:ee key too small