使用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环境》
部署方法可参考《在Rocky Linux 9系统中编译安装Nginx》

二、部署步骤
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.查看网站证书信息,发现证书已成功更新
