docker中nginx添加SSL证书,并支持http和https连接

背景

最近在弄一个小程序,小程序上线需要后端https访问。那我原先的需要在nginx中添加SSL证书

关于SSL证书,可以去阿里云或者腾讯云去申请。不过现在个人免费版只有3个月的有效期。我们申请到证书后,放到nginx中

我们新增了一个cert文件夹

bash 复制代码
mkdir cert

然后将证书的key和pom丢进去

因为我的项目之前在docker里已经用了nginx做代理,所以我这里就不再赘述docker安装nginx的流程。

就直接修改nginx的配置文件,需要在http块内再配置一个server

bash 复制代码
    server {
     #HTTPS的默认访问端口443。
     #如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。
     listen 443 ssl;
     
     #填写证书绑定的域名
     server_name www.xxxx.com;
 
     #填写证书文件 容器内的路径,启动容器的时候挂载上就行
     ssl_certificate /etc/nginx/conf/cert/www.xx.com.pem;
     #填写证书私钥文件绝对路径
     ssl_certificate_key /etc/nginx/conf/cert/www.xx.com.key;
 
     ssl_session_cache shared:SSL:1m;
     ssl_session_timeout 5m;
	 
     #自定义设置使用的TLS协议的类型以及加密套件(以下为配置示例,请您自行评估是否需要配置)
     #TLS协议版本越高,HTTPS通信的安全性越高,但是相较于低版本TLS协议,高版本TLS协议对浏览器的兼容性较差。
     ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
     ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;

     #表示优先使用服务端加密套件。默认开启
     ssl_prefer_server_ciphers on;
 
 
    location / {
            alias /img_data/ftp/ftpuser/upload/;
            autoindex on;
            index index.html index.htm;

    }
    location /main/ {
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://xxxxxx:9005/main/; # 反向代理
    }
}

另外我们还做了一个端口转发,把小程序的访问转到了9005端口

然后启动容器

bash 复制代码
docker run  -it --restart=always -p 9001:80 -p 9006:443 --name nginx-hy4 -v /home/nginx/conf/nginxnew.conf:/etc/nginx/nginx.conf -v /home/nginx/conf/conf.d:/etc/nginx/conf.d -v /home/nginx/conf/cert:/etc/nginx/conf/cert -v /img_data/ftp/ftpuser/upload/:/img_data/ftp/ftpuser/upload/  nginx:latest

9001是http的端口,9006是https的端口

相关推荐
姜鱼问生9 分钟前
Nginx 缓存命中率监控:从 X-Cache-Status 到实时统计
运维·nginx·缓存
sbjdhjd5 小时前
云安全 | Docker 容器逃逸复盘(三):docker.sock 挂载与 Docker-in-Docker 风险
经验分享·网络安全·docker·云原生·容器·kubernetes·云安全
长按助力退休7 小时前
HTTP缓存从强缓存到协商缓存,前端性能优化第一步
http
帷幕落秋7 小时前
Docker的两种安装
运维·docker·容器
工业一体机老司机7 小时前
工业一体机选购后的系统部署:Ubuntu下Docker容器化运行与GPIO配置
linux·ubuntu·docker·人机交互
姜鱼问生11 小时前
docker exec 排查容器问题:从日志到进程
运维·网络·数据库·docker·容器
人生百态,人生如梦12 小时前
Ubuntu在低版本下使用ccswitch+claudecode(CCSwitch+Docker+Claude)连调教程
linux·ubuntu·docker·claudecode·ccswitch
程序员老赵12 小时前
Docker 部署 OpenViking:轻松搭建 AI Agent 上下文数据库平台
docker·开源·agent
Joy T13 小时前
从 Nginx 到 Gateway 再到微服务:一次 AI 请求的完整链路
nginx·微服务·gateway·controller·路由转发·ai service·接口错误排查
吴声子夜歌13 小时前
Docker入门与实战——高级镜像构建
docker