如何替换https证书(docker-compose部署模式)

Docker Compose中替换HTTPS证书的步骤
本文详细介绍了如何在Docker Compose环境中替换HTTPS证书。首先,检查.crt或.pem证书文件并使用openssl查看内容。然后,将证书复制到服务器的指定目录,并在Dockerfile中确保证书被添加到镜像。接着,更新nginx.conf配置文件以引用新的证书路径。最后,重启web容器并检查日志,通过浏览器验证证书是否生效。

如何替换https证书(docker-compose部署模式)

  1. 先确认证书,正常情况下有两个文件一个.key结尾,另一个是.crt或者.pem结尾,先查看.crt或者.pem的内容
openssl x509 -in STAR_lcz_com.crt -text
  1. 把证书上传到服务器部署目录(例如/home/build/my_deploy)的cert文件夹
  2. 检查部署目录下的Dockerfile文件,确认cert目录下的证书拷贝到镜像中,例如
FROM my_xxx_web
COPY nginx.conf  /etc/nginx/nginx.conf
COPY cert /etc/nginx  #  目录中不包含cert路径
# ADD cert /etc/nginx # 目录中包含cert路径
  1. 修改部署目录下nginx.conf,如
server {
    listen 443 ssl;
    server_name x.abc.com; #这个域名必须是你申请ssl证书的时候绑定的域名
    ssl_certificate /etc/nginx/x.abc.com.pem; #SSL 证书文件路径,由证书签发机构提供
    ssl_certificate_key /etc/nginx/x.abc.com.key; #SSL 密钥文件路径,由证书签发机构提供
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; #使用此加密套件。
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #使用该协议进行配置。
    ssl_prefer_server_ciphers on;
    location / {
        root html;
        index index.html index.htm;
    }
}
  1. 重启web容器
dc up —build -d web
  1. 检查logs,并用浏览器访问https地址,确认证书是否已经生效
dc logs -f --tail=20 web
### 使用 Docker Compose 部署 Open Web UI 并配置 HTTPS 为了实现这一目标,可以基于已有的经验构建一个安全可靠的方案。首先定义 `docker-compose.yml` 文件来描述服务架构。 #### 创建 docker-compose.yml 文件 此文件用于指定所需的服务及其参数: ```yaml version: '3.9' services: webui: image: your_open_webui_image:tag # 替换成实际使用的Open Web UI镜像名称和标签 container_name: open_webui_container restart: unless-stopped # 设置重启策略为除非手动停止否则自动重启 ports: - "443:443" # 映射宿主机端口到容器内部HTTPS端口 environment: VIRTUAL_HOST: example.com # 修改成自己的域名 LETSENCRYPT_HOST: example.com # 同上, 如果使用Let's Encrypt证书管理器的话 LETSENCRYPT_EMAIL: admin@example.com # Let's Encrypt账户邮箱地址 volumes: - ./certs:/etc/nginx/certs # 将本地证书目录挂载至Nginx容器内相应位置以便读取SSL/TLS证书文件 networks: - proxy-tier # 加入网络以允许反向代理访问本应用 networks: proxy-tier: external: true # 这里假设外部已经存在名为proxy-tier的自定义网络供其他组件连接 ``` 上述配置中涉及到 SSL/TLS 的部分依赖于预先准备好的私钥与公钥对(`.crt`, `.key`),这些应该放置在项目根目录下的 `./certs/` 文件夹中[^2]。 对于希望自动化获取并更新免费的 Let’s Encrypt CA 签发的 TLS 证书,则需引入额外的服务如 Traefik 或者 Nginx Proxy Manager 来作为入口网关处理 HTTP 请求转发以及 ACME 协议交互流程[^3]。 #### 准备必要的证书材料 确保拥有有效的 SSL/TLS 证书及密钥,并将其存放在项目的 `./certs/` 子目录下。如果打算利用 Let’s Encrypt 提供的服务动态创建证书,请忽略这一步骤,因为后续设置将会由选定的反向代理工具完成。 #### 执行部署命令 当一切就绪之后,在包含 `docker-compose.yml` 文件的工作空间执行如下指令启动整个环境: ```bash docker compose up -d ``` 这条命令将以守护进程模式后台运行所有被定义的服务实例,并按需拉取缺失的基础镜像资源。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值