使用Docker部署一个SSL证书管理系统           

使用Docker部署一个SSL证书管理系统

作者 hxwsq_华 于 2025-04-07 15:15:05.0 发表于 浙江    最近修改于 2025-04-07 15:15:05.0     本文浏览量:92人次

一、说明

1.1 开源项目

本文使用的是一个开源项目,具体项目信息点此访问

通过该SSL证书管理系统,可以实现自动申请SSL证书并自动更新网站SSL证书

1.2 准备工作

1.准备一台服务器

本文使用的是云服务器,带有一个固定的公网IP地址

2.在服务器上部署好Docker环境

部署方法可参考《在Rocky Linux 9系统中部署Docker环境》

3.在服务器上部署好Nginx

部署方法可参考《在Rocky Linux 9系统中编译安装Nginx》

4.准备好一个域名并解析到公网IP上

二、部署步骤

2.1 获取最新docker镜像

docker pull registry.cn-shenzhen.aliyuncs.com/handsfree/certd:1.28.2
---1.28.2是目前最新的版本号,可根据实际版本号修改

2.2 编写docker-compose.yml

---此处仅供参考
mkdir -p /server/server_cert
cat << 'EOF' > /server/server_cert/docker-compose.yml
services:
  certd:
    image: registry.cn-shenzhen.aliyuncs.com/handsfree/certd:1.28.2 #镜像:版本号
    container_name: cert #容器名(可自定义)
    restart: unless-stopped #容器崩溃后自动重启(除非手动停止)
    volumes: #主机目录:容器目录的映射(主机目录可自定义)
      - /server/server_cert/data:/app/data #数据库以及证书存储路径
    ports: #主机端口:容器端口的映射(主机端口可自定义) 
      - "33001:7001" #http端口
    environment: #环境变量
      - certd_system_resetAdminPasswd=false #如果忘记管理员密码,可以设置为true,重启之后,管理员密码将改成123456,然后请及时修改回false
EOF

2.3 启动容器

cd /server/server_cert/ && docker-compose up -d

2.4 配置Nginx代理

---此处仅供参考
cat << 'EOF' > /usr/local/nginx/conf.d/server_cert.conf
server {
    listen       80;
    server_name  cert.hxwsq.com;
    return 301 https://$server_name$request_uri;
}
server {
    listen       443 ssl;
    server_name  cert.hxwsq.com;
    ssl_certificate      /usr/local/nginx/cert/cert.crt;
    ssl_certificate_key  /usr/local/nginx/cert/cert.key;
    large_client_header_buffers 4 32k;
    client_max_body_size 1000m;
    client_body_buffer_size 100m;
    proxy_connect_timeout 6000;
    proxy_read_timeout 12000;
    proxy_send_timeout 12000;
    proxy_buffering off;
    proxy_buffer_size 1m;
    proxy_buffers   4 1m;
    proxy_busy_buffers_size 2m;
    proxy_temp_file_write_size 1m;
    ssl_session_cache    shared:SSL:1m;
    ssl_session_timeout  5m;
    ssl_protocols TLSv1.2;
    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers  on;
    location ^~ / {
        proxy_pass  http://127.0.0.1:33001;
        add_header Content-Security-Policy upgrade-insecure-requests;
        proxy_set_header Host cert.hxwsq.com;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header X-Forwarded-Proto https;
        proxy_set_header Via    "nginx";
        client_max_body_size   1000m;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_redirect default;
        add_header From localhost;
        proxy_set_header Cookie $http_cookie;
    }
}
EOF
配置完成后重载下Nginx配置
nginx -s reload

三、使用方法

3.1 系统设置

1.通过域名来访问系统,初始用户名和密码:admin/123456
2.首次登录系统后修改下密码
3.其他系统设置根据需要进行设置即可

3.2 创建证书申请任务

1.创建一条申请证书的流水线任务
2.至此,证书申请任务创建成功,可手动触发,也可按照之前配置的定时任务来自动触发

3.3 添加证书自动部署任务

1.编辑流水线任务---添加任务
2.填写任务名称并编辑任务
3.选择“主机---部署证书到主机---确定“
3.至此,证书自动部署任务创建成功,如果还有其他主机需要自动部署证书,可继续添加任务

3.4 运行流水线任务

1.手动触发任务(定时触发会在指定时间自动运行,无需手动干预)
2.每个步骤都可以点击任务查看详细日志
3.在系统首页,可以查看证书到期时间
4.查看网站证书信息,发现证书已成功更新

 

 

本站声明

本站所有文章均由作者(hxwsq_华)个人整理和发布,仅供学习和参考,严禁任何形式的复制和转载!
如有疑问,请点击此处给作者发邮件,谢谢!