📦 第一阶段:下载与初始化
我们将 Certimate 部署在 /opt/certimate 目录下,以符合 Linux 软件安装规范。
1. 下载二进制文件 前往 Certimate 的 GitHub Releases 页面,下载对应架构的压缩包并解压至目标目录:
Bash
sudo mkdir -p /opt/certimate
cd /opt/certimate
# 假设已经下载并解压,确保包含可执行文件 `certimate`

2. 赋予执行权限并测试运行 首次运行会自动完成数据库和配置文件的初始化:
Bash
sudo chmod +x certimate
sudo ./certimate serve --http=0.0.0.0:9654
注:看到 migration done 和 Visit the website 日志后,按 Ctrl + C 退出。

初始的管理员账号及密码:
账号:
admin@certimate.fun密码:
1234567890
⚙️ 第二阶段:配置 systemd 系统服务
为了让 Certimate 在后台稳定运行并实现开机自启,需要将其注册为系统服务。
1. 创建服务配置文件
Bash
sudo nano /etc/systemd/system/certimate.service
2. 写入以下配置 关键细节:ExecStart 中的参数不能带双引号,且必须监听 0.0.0.0 以允许 Authentik 所在的 Docker 容器访问。
Ini, TOML
[Unit]
Description=Certimate SSL Management Service
After=network.target
[Service]
Type=simple
# 默认使用 root 运行以确保有权限读取 /opt 下的文件及读写本地证书。
# 如果你严格限制了权限,可以将其改为 User=yanchang
User=root
WorkingDirectory=/opt/certimate
ExecStart=/opt/certimate/certimate serve --http="0.0.0.0:9654"
Restart=on-failure
RestartSec=5s
[Install]
WantedBy=multi-user.target3. 重载系统服务并启动
Bash
sudo systemctl daemon-reload
sudo systemctl enable --now certimate
sudo systemctl status certimate # 检查是否为 active (running)
4. 稍微修改一下nginx配置文件
server {
# 1. 监听端口
listen 9001 ssl;
# 2. 域名 (请确保这里和 Authentik 后台填写的域名一致)
server_name *********.** *.*********.**;
# SSL 证书配置 (路径请确认无误)
ssl_certificate /etc/nginx/ssl/www.yanchang.pem;
ssl_certificate_key /etc/nginx/ssl/www.yanchang.key;
# SSL 协议优化
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers HIGH:!aNULL:!MD5;
# Authentik 不需要太大的上传限制,但为了上传头像/图标,保留适量大小
client_max_body_size 100M;
location / {
# 指向 Authentik 的 HTTP 端口
proxy_pass http://127.0.0.1:9000;
# ========================================================
# 基础跳转与 Host 识别
# ========================================================
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# ========================================================
# 【新增修复】WebSocket 与 SSE (EventSource) 长连接支持
# ========================================================
# 强制使用 HTTP/1.1,这是 WebSocket 和 SSE 正常工作的前提
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
# 彻底关闭代理缓冲!让实时日志数据流能够“来一点发一点”,而不是被 Nginx 拦截等待
proxy_buffering off;
proxy_cache off;
chunked_transfer_encoding on;
# ========================================================
# 【修改】超时时间优化
# ========================================================
proxy_connect_timeout 300s;
# 将读写超时时间延长至 1 小时,防止执行耗时较长的工作流时连接被 Nginx 杀掉
proxy_send_timeout 3600s;
proxy_read_timeout 3600s;
}
}
🛡️ 第三阶段:配置宿主机防火墙 (UFW)
为了实现“零信任”安全架构,防止内网用户直接绕过网关访问 Certimate,我们需要在 Ubuntu 的防火墙中进行精确授权。
1. 仅允许 Docker 容器网段访问 9654 端口 假设你的 Docker 容器默认网段为 172.16.0.0/12(可根据实际情况调整),执行以下命令:
Bash
sudo ufw allow from 172.16.0.0/12 to any port 9654 proto tcp
通过此步骤,外部公网和普通局域网设备直接访问 192.168.0.250:9654 将被拦截,只有 Authentik 容器能与 Certimate 通信。
🔐 第四阶段:配置 Authentik 认证网关
在 Authentik 管理员界面中创建一个新的“代理 (Proxy)”提供程序创建,并绑定到前哨 (Outpost)。

1. 核心提供程序 (Provider) 配置避坑点
提供程序类型: 代理 (Proxy)
外部主机:
https://certimate.*********.**:9001(严禁在结尾添加/)内部主机:
http://192.168.0.250:9654(需确保填写的宿主机局域网 IP 正确)
2. 绑定前哨 (Outpost) 这是最容易遗漏的一步。配置完应用后,必须去更新前哨:
进入 应用程序 -> 前哨 (Outposts)。
编辑你正在使用的
authentik Embedded Outpost。在 应用程序 列表中,找到并高亮选中你的 Certimate 应用。
保存配置,等待 10 秒左右让前哨刷新路由规则。
