常见问题
应该选择哪种证书来源?
只要证书颁发机构提供 ACME,就优先使用 ACME:Let's Encrypt 等免费 CA 的证书可全程自动签发与续期。付费证书优先使用 CA 提供的 ACME 服务(配合 External Account Binding),或 JEC 支持的厂商服务;都不适用时,再手动上传证书。参见证书来源。
无法通过 http://<服务器>:8080 打开面板
docker-compose.yml 仅在 127.0.0.1:8080 上发布 JEC,只能从服务器本机访问。请经配置了 HTTPS 的反向代理或 SSH 隧道打开面板,参见反向代理与 CDN。
签发失败,如何查找原因?
打开证书,再打开最近一次签发:页面列出每个步骤及其日志,勾选“显示原始信息”可查看原始错误。常见原因包括:DNS 服务商的凭据没有添加记录的权限、所选 DNS 服务商并不负责该域名的解析、CAA 记录不允许该 CA,以及 CA 的频率限制。失败后 JEC 会自动重试,参见失败与重试。
验证记录一直不生效
JEC 向域名的权威 DNS 服务器查询记录是否生效。证书所选的 DNS 服务商必须是域名 NS 记录所指向的服务商。如服务器的域名解析结果与公网不同,可在 JEC_DNS_RESOLVERS 中指定公共解析服务器(参见 DNS 解析服务器)。DNS 服务商没有 API 时,可用 CNAME 记录将 _acme-challenge 委派到受支持服务商上的域名(参见域名验证)。
部署后网站仍在使用旧证书
线上巡检会连接每个域名进行核对:新证书生效 30 分钟后网站仍使用旧证书时,JEC 会报告并发送通知(参见线上巡检)。请检查部署目标的设置(如要更新的站点或域名)及其最近一次部署日志;CDN 应用证书可能需要几分钟。在证书页面选择“重新部署”可再次部署。
服务器无法访问 CA 或境外服务
ACME 账号以及访问境外服务的服务商(如 Telegram、Cloudflare、AWS)在高级设置中各有独立的代理设置(参见代理)。
忘记密码或丢失了验证器
在服务器上重置密码;此操作同时关闭两步验证、结束所有会话并删除全部 API 令牌:
docker exec -it jec /jec reset-password # Docker
sudo -u jec /usr/local/bin/jec reset-password -data-dir /var/lib/jec # systemd 服务如何将 JEC 迁移到其他服务器?
停止 JEC,将整个数据目录(含 secret.key)复制到新服务器,然后在新服务器上启动相同或更新版本的 JEC。也可以使用在设置页下载的备份,并同时提供 secret.key。参见数据与备份。
主密钥丢失了
数据库由其他主密钥加密时,JEC 拒绝启动,因为其中的私钥与凭据无法解密。请从数据目录的备份中恢复 secret.key。如果无法恢复,只能使用新的数据目录,重新添加证书与服务商。
如何升级?
拉取新镜像并重新创建容器,或使用新的二进制文件再次执行 jec service install;数据库在启动时自动迁移。参见升级。