如何在 ServBay 中从 ZeroSSL 申请 SSL 证书
ServBay 是一款强大的本地 Web 开发环境,它支持使用 ACME (Automated Certificate Management Environment) 协议自动申请和管理 SSL/TLS 证书。这使得开发者能够轻松地为本地搭建的网站配置 HTTPS,更好地模拟生产环境,测试需要 HTTPS 的功能(如 Service Worker、安全上下文 API 等)。本文将详细指导您如何在 ServBay 中通过 ZeroSSL 签发免费的 SSL 证书。
概述
通过 ServBay 集成的 ACME 功能,您可以直接向受信任的证书颁发机构 (CA),如 ZeroSSL,申请真实的、公开信任的 SSL 证书。ServBay 会自动处理证书的申请、验证(通过 DNS-01 挑战)和续期过程,极大地简化了本地环境配置 HTTPS 的复杂性。
应用场景
- 在本地开发环境中模拟生产环境的 HTTPS 设置。
- 测试需要安全上下文(Secure Context)的 Web 功能,例如 Service Worker、Web Authentication API、Geolocation API (在某些浏览器中)、Payment Request API 等。
- 确保本地开发与生产环境的一致性,减少因协议差异导致的问题。
- 为需要公开访问(例如通过内网穿透)的本地服务提供受信任的 SSL 证书。
前提条件
在开始申请 ZeroSSL 证书之前,请确保您已满足以下条件:
- 拥有一个或多个域名: 您需要拥有您自己管理的域名。请注意,您将为这些域名申请证书,而不是为
localhost
或 IP 地址。 - 能够管理域名的 DNS 记录: ZeroSSL (通过 ACME DNS-01 挑战) 需要通过在您的域名 DNS 记录中添加特定的 TXT 记录来验证您对域名的所有权。因此,您必须拥有修改域名 DNS 记录的权限。
- 获取 DNS 提供商的 API 密钥: ServBay 使用 DNS API 方式自动完成 DNS 记录的验证。您需要从您的域名注册商或 DNS 服务提供商(如 Cloudflare, GoDaddy, Aliyun DNS 等)获取用于 DNS API 访问的密钥或令牌。不同提供商的 API 获取方式不同,通常需要在其网站的用户面板中生成。您可以参考 acme.sh Wiki 的 DNS API 部分 来查找您的提供商所需的 API 密钥名称和获取指南(虽然 ServBay 集成的是 ACME 客户端,但其 DNS API 配置兼容 acme.sh 的格式)。
申请步骤
以下是在 ServBay 中通过 ZeroSSL 申请 SSL 证书的具体操作流程:
启动 ServBay 并打开管理面板: 双击 ServBay 应用图标启动程序,然后通过系统托盘图标或菜单打开 ServBay 管理面板。
进入 SSL 证书管理界面: 在 ServBay 管理面板的侧边栏中,找到并点击 SSL 证书 选项。
开始新的证书申请: 在 SSL 证书列表页面的右上角,点击带有加号 (+) 的按钮。这将打开证书申请配置窗口。
填写证书申请信息: 在弹出的 "Request Certificate" (申请证书) 窗口中,您需要填写以下关键信息:
- Common Name (通用名称): 为您的证书指定一个易于识别的名称,例如
servbay.demo SSL
。这仅用于 ServBay 内部标识。 - Usage Purpose (使用目的): 选择
TLS/SSL
,表明此证书将用于加密 Web 流量。 - Request Method (申请方法): 选择
ACME
,表示通过 ACME 协议自动申请。 - Issuer (颁发机构): 选择
ZeroSSL
。 - DNS API Provider (DNS API 提供商): 从下拉列表中选择您的域名所使用的 DNS 服务提供商。ServBay 支持众多主流提供商。
- Algorithm (算法): 建议选择
ECC
(Elliptic Curve Cryptography) 算法,并选择密钥长度384
。ECC 384 提供了与 RSA 相当的安全强度,但密钥更短,性能更好。 - E-Mail Address (邮箱地址): 输入您的有效邮箱地址。ZeroSSL 或 ServBay 可能会通过此邮箱发送证书到期或续期失败的通知。
- DNS API Tokens (DNS API 令牌): 输入您的 DNS 提供商所需的 API 密钥信息。这些信息通常是键值对的形式(例如
CF_Key=xxx CF_Email=xxx
)。请根据您选择的 DNS API Provider 和 acme.sh Wiki 中的说明准确填写。重要提示:请不要在 API 信息前添加export
命令或其他 shell 语法。 只需提供纯粹的键=值
或键="值"
格式,多个键值对之间用空格分隔。 - Domain (域名): 输入您要申请证书的域名。如果要为多个域名申请(包括通配符域名),请使用英文逗号
,
分隔。例如:servbay.demo, www.servbay.demo, *.servbay.demo
。请注意,申请通配符证书 (*.yourdomain.com
) 必须 使用 DNS API 验证方式。
(请注意:图片中的示例域名可能与文本中的品牌示例域名不同,请以文本说明为准)
- Common Name (通用名称): 为您的证书指定一个易于识别的名称,例如
提交申请: 仔细核对填写的所有信息无误后,点击窗口右下角的 Request (申请) 按钮。
等待申请完成: ServBay 将在后台启动 ACME 客户端,连接 ZeroSSL 服务器,执行域名所有权验证(通过您提供的 DNS API 在您的域名下自动创建并验证 TXT 记录),并在验证成功后自动获取并安装证书。这个过程可能需要一些时间,具体取决于 DNS 记录的传播速度和 ZeroSSL 服务器的响应。ServBay 界面会显示申请进度。
验证证书列表: 申请成功后,新颁发的证书将出现在 SSL 证书 列表中,状态显示为 "Valid" (有效)。
使用证书
证书申请成功并添加到 ServBay 后,您可以将其应用于您的本地网站:
- 进入网站配置: 在 ServBay 管理面板的侧边栏中,点击 网站 选项。
- 选择或编辑网站: 选择您想要配置 HTTPS 的现有网站,或创建一个新网站。
- 配置 SSL 证书: 在网站配置界面的 SSL 部分,将下拉菜单从默认选项(如 "None" 或 ServBay User CA)切换为 ACME。
- 选择已申请的证书: 在右侧出现的 ACME 证书下拉列表中,选择您刚刚从 ZeroSSL 申请到的证书(通过您之前设置的 Common Name 识别)。
- 保存配置: 点击保存按钮应用更改。ServBay 将自动配置您的 Web 服务器(Caddy 或 Nginx)以使用此证书提供 HTTPS 服务。
(请注意:图片中的示例域名可能与文本中的品牌示例域名不同,请以文本说明为准)
现在,您应该可以通过 https://您的域名
来访问您的本地网站了。
证书续期
ZeroSSL 颁发的证书有效期通常为 90 天。ServBay 集成的 ACME 功能会自动监控证书的有效期,并在证书临近过期时(通常在到期前 30 天)自动为您执行续期操作。只要您的 ServBay 正在运行,并且 DNS API 密钥仍然有效,您通常无需手动干预即可完成证书续期。
重要提示与故障排除
- DNS API 密钥安全: 您的 DNS API 密钥拥有修改 DNS 记录的权限,请务必妥善保管,不要泄露。
- DNS 传播时间: 证书申请依赖于 DNS TXT 记录的验证。DNS 记录的修改需要时间在全球范围内传播(通常几分钟到几小时不等)。如果申请失败,请稍等片刻再尝试。
- API 密钥格式: 确保您输入的 DNS API 密钥格式完全符合
acme.sh
Wiki 中您提供商的要求,且没有包含export
等 shell 命令前缀。这是常见的错误来源。 - 防火墙: 确保您的本地防火墙或网络设置没有阻止 ServBay 访问 ZeroSSL 或您的 DNS 提供商的 API 服务器。
- ServBay User CA vs. ZeroSSL: ServBay 也提供内置的 ServBay User CA 和 Public CA。这些证书主要用于纯本地开发环境,通过在系统或浏览器中信任 ServBay 的根证书来实现 HTTPS。而通过 ZeroSSL 申请的证书是公开信任的,适用于需要模拟生产环境或通过公网/内网穿透访问的场景。根据您的需求选择合适的证书类型。
总结
通过 ServBay 的 ACME 协议集成,您可以轻松便捷地从 ZeroSSL 申请和管理免费的 SSL 证书,为您的本地开发网站启用 HTTPS。这不仅能帮助您更好地模拟生产环境和测试安全功能,还能提升您的开发体验。ServBay 自动化的申请和续期流程,让本地 HTTPS 配置变得前所未有的简单。