工具 / 开源项目

OHTTPS 是一个提供免费 HTTPS/SSL 证书申请及自动化部署的服务平台,支持泛域名证书,并与 Let’s Encrypt 集成

MOMO · 4月2日 · 2026年 · 本文共2911个字 · 预计阅读10分钟 17次已读

一、注册与准备

1.1 注册账号

  • 访问 OHTTPS 官网 https://ohttps.com 进行注册。
  • 支持邮箱、Google 或 GitHub 账号直接登录
  • 余额说明:注册后通常赠送 500 余额(通过邀请码注册可获 1000 余额),用于证书申请和部署的消耗

1.2 准备工作

  • 一个已解析的域名(如 example.com)。
  • 如果是泛域名证书,需准备 *.example.com
  • 域名 DNS 管理权限(用于添加验证记录)。

二、证书申请流程

2.1 进入证书管理

登录后,在控制台找到 证书管理 菜单,点击 创建证书

2.2 填写域名信息

  • 证书类型:选择单域名、多域名或泛域名。
  • 域名
    • 泛域名:输入 *.example.com(注意加 * 号)。
    • 单域名:输入 www.example.com

2.3 域名验证(DNS验证)

OHTTPS 需要验证域名所有权,通常通过 DNS 添加 CNAME 或 TXT 记录实现

  1. 在 OHTTPS 页面获取验证信息(主机记录、记录值)。
  2. 登录你的域名 DNS 管理后台(如阿里云、腾讯云)。
  3. 添加解析记录:
    • 记录类型:CNAME 或 TXT。
    • 主机记录:按提示填写(通常为 _acme-challenge)。
    • 记录值:粘贴 OHTTPS 提供的值。
  4. 等待解析生效(通常 1-5 分钟)。
  5. 在 OHTTPS 页面点击 授权验证

建议:若使用泛域名证书,建议保留此 DNS 记录,以便后续自动续期

2.4 创建与下载证书

验证成功后,点击 创建证书。证书签发后(通常为 Let’s Encrypt 证书,有效期 90 天),在证书列表中找到该记录,点击 查看 或 下载

  • 关键文件
    • cert.key:私钥文件。
    • fullchain.cer(或 .pem):证书文件(包含中间证书)

三、部署配置(核心环节)

OHTTPS 的核心优势在于 自动化部署,你可以选择手动配置,也可以使用自动推送。

3.1 方式一:手动配置(通用)

适用于任意服务器(Nginx、Apache、Spring Boot 等)。

Nginx 配置示例 

  1. 将下载的 cert.key 和 fullchain.cer 上传到服务器(如 /etc/nginx/ssl/)。
  2. 编辑 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;
    }
}
  1. 重载 Nginx:nginx -s reload

Spring Boot 配置 

  • 将证书转换为 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 实现自动拉取证书

  1. 创建部署节点
    • 进入 部署节点 菜单,点击 添加节点
    • 选择类型(如 Docker & Nginx)。
    • 生成 PUSH_NODE_ID 和 PUSH_NODE_TOKEN
    • 关联第二步申请的证书。
  2. 编写 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
  1. 启动容器
    docker build -t my_nginx .
    docker run -d -p 443:443 --name my_nginx my_nginx

    场景2:SSH 推送到 Linux 服务器

    该方式允许 OHTTPS 通过 SSH 远程执行命令,更新证书并重载服务

    1. 创建 SSH 部署节点:填入服务器 IP、端口、用户名、密码/密钥。
    2. 配置命令
      • 前置命令(可选):如 cd /etc/nginx/ssl
      • 后置命令(关键):如 nginx -s reload
    3. 系统会自动创建 /证书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_USERNAMESYNO_PASSWORD 以及 PUSH_NODE_ID

    3.3 验证生效

    • 浏览器访问 https://你的域名,查看地址栏小锁图标。
    • 检查证书信息,确认颁发者为 Let’s Encrypt,有效期正确

    四、自动化更新与维护

    OHTTPS 默认会在证书到期前自动尝试续期(Let’s Encrypt 证书有效期为 90 天)

    • 自动部署:只要部署节点配置正确且 DNS 验证记录未删除,系统会在更新证书后自动推送到你的服务器并执行重载命令(如 nginx -s reload)。
    • 手动更新:在证书管理页面,可点击“续期”手动触发。

    费用提醒
    虽然 OHTTPS 提供免费额度,但每次申请和部署会消耗少量余额。对于个人站长或中小企业,初始赠送的 500-1000 余额通常可长期使用


    五、常见问题排查

    5.1 域名验证失败

    • 原因:DNS 记录未生效、记录值填写错误。
    • 解决:检查 DNS 解析是否添加正确,使用 nslookup 或 dig 命令检查记录是否已传播。

    5.2 Docker 容器无法获取证书

    • 原因:环境变量 PUSH_NODE_ID 或 PUSH_NODE_TOKEN 错误。
    • 解决:进入容器执行 echo $PUSH_NODE_ID 检查变量是否设置正确

    5.3 SSH 部署后证书未更新

    • 原因:后置命令未生效或用户权限不足。
    • 解决:检查后置命令(如 nginx -s reload)是否需加绝对路径;确保用户有执行权限

    5.4 Nginx 配置报错

    • 检查ssl_certificate 和 ssl_certificate_key 路径是否写反(证书和私钥需一一对应)。
    • 测试:使用 nginx -t 测试配置语法。

    通过以上步骤,你可以利用 OHTTPS 实现从证书申请到部署的全流程自动化,不仅节省购买证书的成本,也解决了免费证书续期繁琐的痛点。

    0 条回应