启用 HTTPS
启用后服务器为每个绑定域名的站点自动申请、续期并热加载证书(ACME HTTP-01,默认 Let's Encrypt)。
前置条件
- 站点域名已解析(A/AAAA 记录)到服务器公网 IP
- 服务器 HTTPS 监听端口与 80 端口可被公网访问,且未被其他进程占用(80 是 HTTP-01 验证的固定回源端口)
- 托管服务器已部署(站内搜索
?部署托管服务器)
操作步骤
-
修改配置文件
service.tls节:tls: enabled: true email: ops@example.comemail是 ACME 账户邮箱,用于到期提醒。tls.httpPort(缺省 80)是质询应答与 301 跳转的监听端口:公网直连部署保持缺省即可;反向代理或端口映射部署时,把外部 80 映射到该端口。 -
重启服务:
docdoc service --config /etc/docdoc/config.yaml stop后再start(或直接systemctl restart docdoc)。 -
注册携带域名的站点:
docdoc add --remote docdoc://docs.example.com ./my-docs --name my-docs --domain docs.example.com注册时服务器自动为该域名发起签发;完成后
https://docs.example.com/可访问,80 端口的普通流量 301 跳转到 HTTPS。 -
首个证书签发前,HTTPS 端口无法完成握手。HTTP 端口(80)同时服务管理 API,首次注册直接走默认 80 端口:
docdoc add --remote docdoc://<服务器IP> ./my-docs --name my-docs --domain docs.example.com证书签发完成后,后续注册与更新即可走 HTTPS 域名地址。管理 API 在 80 端口为明文 HTTP、仅由 Bearer Token 保护,可改用
managementPort指定仅对内网开放的管理端口。
运行期事实
- 证书落盘
dataDir/certs/<域名>/ - 每日检查有效期,到期前 30 天自动续期,更新后热加载不重启进程
- 重复注册(
del后add)时,已有未临期证书则跳过重复签发,不消耗 ACME 配额 - 联调时把
directoryUrl切到 Let's Encrypt staging 地址,避免触发正式环境速率限制
