一、注册与准备
1.1 注册账号
- 访问 OHTTPS 官网 https://ohttps.com 进行注册。
- 支持邮箱、Google 或 GitHub 账号直接登录。
- 余额说明:注册后通常赠送 500 余额(通过邀请码注册可获 1000 余额),用于证书申请和部署的消耗。
1.2 准备工作
- 一个已解析的域名(如
example.com)。 - 如果是泛域名证书,需准备
*.example.com。 - 域名 DNS 管理权限(用于添加验证记录)。
二、证书申请流程
2.1 进入证书管理
2.2 填写域名信息
2.3 域名验证(DNS验证)
OHTTPS 需要验证域名所有权,通常通过 DNS 添加 CNAME 或 TXT 记录实现。
- 在 OHTTPS 页面获取验证信息(主机记录、记录值)。
- 登录你的域名 DNS 管理后台(如阿里云、腾讯云)。
- 添加解析记录:
- 记录类型:CNAME 或 TXT。
- 主机记录:按提示填写(通常为
_acme-challenge)。 - 记录值:粘贴 OHTTPS 提供的值。
- 等待解析生效(通常 1-5 分钟)。
- 在 OHTTPS 页面点击 授权验证。
2.4 创建与下载证书
验证成功后,点击 创建证书。证书签发后(通常为 Let’s Encrypt 证书,有效期 90 天),在证书列表中找到该记录,点击 查看 或 下载。
三、部署配置(核心环节)
OHTTPS 的核心优势在于 自动化部署,你可以选择手动配置,也可以使用自动推送。
3.1 方式一:手动配置(通用)
适用于任意服务器(Nginx、Apache、Spring Boot 等)。
- 将下载的
cert.key和fullchain.cer上传到服务器(如/etc/nginx/ssl/)。 - 编辑 Nginx 配置:
server {
listen 443 ssl;
server_name www.example.com;
ssl_certificate /etc/nginx/ssl/fullchain.cer; # 证书文件
ssl_certificate_key /etc/nginx/ssl/cert.key; # 私钥文件
location / {
root /var/www/html;
index index.html;
}
}
- 重载 Nginx:
nginx -s reload。
- 将证书转换为 JKS 格式(使用
openssl或keytool)。 - 配置
application.yml:
server:
ssl:
enabled: true
key-store: classpath:cert/example.jks
key-store-password: your_password
key-store-type: JKS
3.2 方式二:自动化部署节点(推荐)
OHTTPS 支持将证书自动推送到云服务、Docker、SSH 等,实现到期自动更新。
场景1:Docker + Nginx 自动化
使用官方镜像 ohttps/ohttps-nginx 实现自动拉取证书。
- 创建部署节点:
- 进入 部署节点 菜单,点击 添加节点。
- 选择类型(如 Docker & Nginx)。
- 生成
PUSH_NODE_ID和PUSH_NODE_TOKEN。 - 关联第二步申请的证书。
- 编写 Dockerfile:
FROM ohttps/ohttps-nginx
ENV PUSH_NODE_ID='push-xxxxx' # 替换为你的ID
ENV PUSH_NODE_TOKEN='your_token' # 替换为你的Token
COPY ./nginx.conf /etc/nginx/nginx.conf
- 启动容器:
docker build -t my_nginx .
docker run -d -p 443:443 --name my_nginx my_nginx
场景2:SSH 推送到 Linux 服务器
该方式允许 OHTTPS 通过 SSH 远程执行命令,更新证书并重载服务。
- 创建 SSH 部署节点:填入服务器 IP、端口、用户名、密码/密钥。
- 配置命令:
- 前置命令(可选):如
cd /etc/nginx/ssl。 - 后置命令(关键):如
nginx -s reload。
- 前置命令(可选):如
- 系统会自动创建
/证书ID/cert.key和fullchain.cer文件。
安全建议:建议新建一个仅用于部署的普通用户,并限制其权限。将 OHTTPS 服务器 IP
119.28.42.104加入 SSH 白名单。
场景3:Webhook 推送
如果你有自己的后端服务,可以通过 Webhook 接收证书内容。
- 创建 Webhook 部署节点,填入回调 URL 和令牌。
- OHTTPS 会 POST JSON 数据(包含证书私钥、证书链等)到你的服务。
- 你的服务需返回
{"success": true}。
场景4:群晖 NAS
使用 Docker 容器 ohttps/ohttps-synology 自动部署证书至 DSM。
- 需要配置群晖账号密码(建议使用非管理员专用账号,关闭双重验证)。
- 设置环境变量
SYNO_USERNAME、SYNO_PASSWORD以及PUSH_NODE_ID。
3.3 验证生效
四、自动化更新与维护
OHTTPS 默认会在证书到期前自动尝试续期(Let’s Encrypt 证书有效期为 90 天)。
- 自动部署:只要部署节点配置正确且 DNS 验证记录未删除,系统会在更新证书后自动推送到你的服务器并执行重载命令(如
nginx -s reload)。 - 手动更新:在证书管理页面,可点击“续期”手动触发。
费用提醒:
虽然 OHTTPS 提供免费额度,但每次申请和部署会消耗少量余额。对于个人站长或中小企业,初始赠送的 500-1000 余额通常可长期使用。
五、常见问题排查
5.1 域名验证失败
- 原因:DNS 记录未生效、记录值填写错误。
- 解决:检查 DNS 解析是否添加正确,使用
nslookup或dig命令检查记录是否已传播。
5.2 Docker 容器无法获取证书
5.3 SSH 部署后证书未更新
5.4 Nginx 配置报错
- 检查:
ssl_certificate和ssl_certificate_key路径是否写反(证书和私钥需一一对应)。 - 测试:使用
nginx -t测试配置语法。
通过以上步骤,你可以利用 OHTTPS 实现从证书申请到部署的全流程自动化,不仅节省购买证书的成本,也解决了免费证书续期繁琐的痛点。
