Nginx https证书配置

准备证书文件

准备.crt和.key文件,上传到服务器。可以上传zip包,然后unzip cert.zip -d /opt解压至目标目录。

进入Nginx容器内配置证书

将证书拷贝到容器内

使用docker cp命令将证书复制到容器内

ini 复制代码
docker cp [本地路径] [容器名/容器ID]:[容器内目标路径]

如:docker cp /opt/cert/ my-nginx:/etc/nginx/cert/

容器的名字和id可以通过docker container ps查看,如果容器已经停止,可以增加参数-a

配置nginx配置文件

ini 复制代码
 server {
    listen 443;
    server_name www.trustauth.cn;   #证书绑定的网站域名
    ssl on;
    ssl_certificate  cert/www.trustauth.cn_chain.crt;  #证书公钥
    ssl_certificate_key cert/www.trustauth.cn.key;    #证书私钥
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!3DES:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    location / {
        root html; #站点目录
        index index.html index.htm;
    }
}

可以使用nginx -t检查配置是否正确,如果一切顺利,可以nginx -s reload重启服务。

常见错误

ssl配置错误

ssl配置报错unknown directive "ssl":

确认 Nginx 是否缺少 SSL 模块

首先通过 Nginx 内置命令,查看已编译的模块列表,判断是否缺少 ssl_module

bash 复制代码
# 查看 Nginx 已编译模块(关键看是否有 --with-http_ssl_module)
nginx -V  # 注意是大写 V,小写 v 只显示版本号

若输出中包含 --with-http_ssl_module:说明已启用 SSL 模块,问题可能是配置文件语法错误。

修改ssl配置语法

如果nginx版本>1.15,不需要使用ssl指令:

diff 复制代码
- listen 443;
- ssl on
+ listen 443 ssl

无法访问443端口

nginx能正常启动,80端口能访问,443无法访问,可能原因有:

  1. 容器未开放443端口
  2. 主机安全组策略未开放443端口

项目内部分链接失效

浏览器限制https网页无法请求http资源,需要检查全部请求连接,是否有指向http的

docker-compose挂载卷

进入容器内配置证书,在容器重建(重启restart不影响)后会恢复原样,可以使用卷挂载这些配置

bash 复制代码
docker run -d \
  --name my-nginx \
  -p 80:80 \  # HTTP 端口映射
  -p 443:443 \  # HTTPS 端口映射(关键)
  -v /宿主机/nginx/conf:/etc/nginx/conf.d \  # 挂载配置目录
  -v /宿主机/nginx/ssl:/etc/nginx/ssl \  # 挂载 SSL 证书
  nginx

也可以在docker-compose文件中增加配置

bash 复制代码
services:
  nginx:
    image: nginx
    ports:
      - "80:80"
      - "443:443"  # 新增/确认这一行
    volumes:
      - ./conf:/etc/nginx/conf.d
      - ./ssl:/etc/nginx/ssl
相关推荐
蝎子莱莱爱打怪21 小时前
Centos7中一键安装K8s集群以及Rancher安装记录
运维·后端·kubernetes
DianSan_ERP2 天前
电商API接口全链路监控:构建坚不可摧的线上运维防线
大数据·运维·网络·人工智能·git·servlet
呉師傅2 天前
火狐浏览器报错配置文件缺失如何解决#操作技巧#
运维·网络·windows·电脑
不是二师兄的八戒2 天前
Linux服务器挂载OSS存储的完整实践指南
linux·运维·服务器
zhangfeng11332 天前
趋动云 如何ssh登录 服务区 项目server
运维·人工智能·ssh
ZeroNews内网穿透2 天前
谷歌封杀OpenClaw背后:本地部署或是出路
运维·服务器·数据库·安全
失重外太空啦2 天前
nginx
运维·nginx
Gofarlic_oms12 天前
避免Kisssoft高级分析模块过度采购的科学评估方法
大数据·linux·运维·人工智能·matlab
田井中律.2 天前
服务器部署问题汇总(ubuntu24.04.3)
运维·服务器
大大水瓶2 天前
HAProxy 从入门到实战:负载均衡与流量管理全解析
运维·负载均衡