nginx绑定SSL证书
1、服务器环境
centos7.9、docker
docker下nginx已经部署并启动,监听80及443端口。
nginx多域名绑定已经测试完成,参考我另外一个文章 nginx 绑定多个域名
ssl证书已经申请完成,参考我另外一个文章 阿里云免费SSL证书申请
ps:本次所用环境及nginx配置文件都是沿用 nginx 绑定多个域名,但是由于此次需要443端口,所以我重新运行了新的容器,以便监听443端口
2、配置
2.1 nginx.conf文件
我只申请了test1.xxxxx.cn的证书,所以配置文件我也只配置了这个证书。
worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80;#端口 server_name localhost;#访问地址、域名 location / { #匹配访问url规则 root /usr/share/nginx/html/html/; #指向路径 实际访问路径为 D:/t2/html/myhtml/ 两个拼接的 } } # 配置 server server { listen 80; server_name xxxxx.cn test1.xxxxx.cn; # 支持 www 和 non-www 两种访问方式 location / { proxy_pass http://172.00.000.000:8003; # 将其转发到本地的 8003 端口 } } # 配置另一个 server server { listen 80; server_name test2.xxxxx.cn; location / { proxy_pass http://172.00.000.000:8004; # 将其转发到本地的 8004 端口 } } # 配置ssl server server { listen 443 ssl; server_name test1.xxxxx.cn; ssl_certificate /etc/nginx/ssl/test1.xxxxx.cn.pem; ssl_certificate_key /etc/nginx/ssl/test1.xxxxx.cn.key; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; location / { # proxy_set_header X-Real-IP $remote_addr; # proxy_set_header Host $http_host; # proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # root /usr/share/nginx/html; # index index.html index.htm; proxy_pass http://172.00.000.000:8003; # 将其转发到本地的 8003 端口 } } }
一般来说如果配置了443,都要把80重定向到443,这个需要在nginx.conf添加一段配置即可
server { listen 80; server_name aaa.printy.cn; rewrite ^(.*)$ https://${server_name}$1 permanent; }
2.2 docker
mkdir -p /data/nginx/ssl
docker run \ --name nginx230829 \ -p 80:80 -p 443:443 \ -v /data/nginx/nginx.conf:/etc/nginx/nginx.conf \ -v /data/nginx/www/:/usr/share/nginx/html/ \ -v /data/nginx/logs/:/var/log/nginx/ \ -v /data/nginx/ssl/:/etc/nginx/ssl/ \ -v /data/nginx/conf/:/etc/nginx/conf.d \ --privileged=true -d --restart=always nginx
这块不多说了,就是运行nginx的容器,然后挂载配置文件,其中ssl文件夹在宿主机创建好以后,需要把ssl文件传上来。
2.3 重启nginx
重启以后,访问test1的域名,可以看到证书已经生效。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端