如何从 Google Trust Services 申请 SSL 证书
ServBay 不仅是一个强大的本地 Web 开发环境,它还内置了对 ACME 协议的支持,使您能够轻松地为本地或远程域名申请和管理受信的 SSL 证书。使用受信的 SSL 证书(如由 Google Trust Services 签发的)可以在本地开发或测试环境中模拟生产环境的 HTTPS 连接,这对于调试混合内容警告、测试安全头部以及确保应用程序在 HTTPS 下正常工作至关重要。
本文将详细指导您如何在 ServBay 中利用 Google Trust Services (GTS) 提供的公共 CA 服务,通过 ACME 协议为您的网站申请 SSL 证书。
前提条件
在开始之前,请确保您已完成以下准备工作:
- 拥有域名并控制 DNS: 您需要拥有一个有效的域名,并且能够完全控制该域名的 DNS 记录。这是通过 DNS API 方式验证域名所有权的基础。
- 获取 DNS API 密钥: ServBay 通过 DNS API 方式自动化域名所有权验证过程。您需要从您的域名注册商或 DNS 服务提供商处获取相应的 API 凭据。不同的提供商有不同的获取方式和参数名称。请参考 acme.sh DNS API Wiki 获取您特定提供商的相关信息和所需密钥。
- 获取 Google Trust Services EAB 密钥: Google Trust Services 的 ACME 服务要求使用外部账户绑定 (External Account Binding, EAB)。EAB 是一种机制,用于将您的 ACME 客户端账户(由 ServBay 管理)与您在 Google Cloud 上的账户关联起来,以授权证书签发。您需要从 Google Cloud 控制台获取 EAB Key ID 和 EAB HMAC Key。请参考 Google Cloud 的官方文档 从 Google Cloud 获取 EAB 信息 获取详细步骤。
申请步骤
打开 ServBay 控制面板: 启动 ServBay 应用并进入其图形化管理面板。
导航至 SSL 证书管理: 在 ServBay 控制面板的侧边栏或顶部菜单中,找到并选择
SSL 证书
(SSL Certificates) 选项,进入证书管理界面。启动证书申请流程: 点击证书列表界面右上角的 “+” 按钮,开始申请新的 SSL 证书。
配置证书请求信息: 在弹出的 “Request Certificate” 窗口中,按照要求填写以下信息:
- Common Name: 输入一个用于标识此证书请求的名称,例如您的项目名称或主域名。例如:
servbay.demo Certificate
。 - Usage Purpose: 保持默认选项
TLS/SSL
不变,这表示该证书将用于加密 Web 服务器的连接。 - Request Method: 选择
ACME
,表示您将使用自动化证书管理环境协议来申请证书。 - Issuer: 从下拉菜单中选择
Google Trust Services
作为您的证书颁发机构 (CA)。 - DNS API Provider: 从下拉菜单中选择您的 DNS 服务提供商(例如:Cloudflare, GoDaddy, AliYun 等)。如果您的提供商不在列表中,您可能需要查阅 ServBay 或 acme.sh 的文档,了解是否支持或需要额外配置。
- Algorithm: 选择证书的密钥算法。建议选择
ECC
(Elliptic Curve Cryptography) 算法,因为它通常提供更高的安全性且密钥长度更短。选择密钥长度384
。 - EAB Key ID: 输入您从 Google Cloud 获取的 EAB Key ID。
- EAB HMAC Key: 输入您从 Google Cloud 获取的 EAB HMAC Key。
- DNS API Tokens: 输入您的 DNS API 密钥和相关参数。【重要】 请参考您的 DNS 提供商在 acme.sh DNS API Wiki 页面上的说明,输入正确的环境变量名称和值。请不要在输入框内包含
export
命令本身。 例如,对于 Cloudflare,您可能需要输入CF_Key=YOUR_API_KEY
和CF_Email=YOUR_EMAIL
,每行一个参数。 - Domain: 输入您要申请证书的一个或多个域名。对于单个域名,直接输入即可(例如:
servbay.demo
)。如果您需要为多个域名申请单张证书(SAN 证书),请使用英文逗号,
分隔多个域名(例如:servbay.demo, www.servbay.demo
)。如果您需要泛域名证书,请输入*.yourdomain.com
的格式(例如:*.servbay.demo
),但请注意泛域名证书通常需要 DNS 验证。
- Common Name: 输入一个用于标识此证书请求的名称,例如您的项目名称或主域名。例如:
提交申请: 确认所有信息填写正确无误后,点击窗口底部的 “Request” 按钮。
等待申请完成: ServBay 将在后台自动执行 ACME 流程,包括联系 Google Trust Services、通过 DNS API 验证域名所有权,并最终签发证书。这个过程可能需要一些时间,具体取决于 DNS 记录的传播速度和 ACME 服务器的响应。申请成功后,新证书将出现在您的 ServBay SSL 证书列表中。
将证书应用于网站
证书申请成功并显示在 ServBay 的 SSL 证书列表中后,您可以将其配置到您的网站上。导航至 网站
(Websites) 配置界面,选择您需要配置的网站。在 SSL 设置部分,选择 ACME
作为证书类型,然后在关联的下拉菜单中,选择您刚刚申请的 Google Trust Services 证书。保存网站配置后,您的网站将通过该证书启用 HTTPS。
证书自动续期
Google Trust Services 签发的 ACME 证书有效期通常为 90 天。为了确保证书持续有效,ServBay 内置了自动续期功能。它会在证书到期前自动尝试执行续期流程,您无需手动跟踪和操作。请确保 ServBay 定期运行,以便自动续期任务能够正常执行。
常见问题与故障排除
- 证书申请失败,提示 DNS 验证错误:
- 检查您输入的 DNS API 密钥和参数是否正确无误,包括环境变量名称和值。
- 确认您的 DNS 服务提供商支持通过 API 进行域名验证,并且您选择了正确的
DNS API Provider
。 - 使用在线 DNS 查询工具(如
dnschecker.org
)检查您的域名 DNS 记录是否已正确传播。DNS 更改可能需要一些时间生效。 - 检查您的网络环境或防火墙设置,确保 ServBay 可以正常访问 ACME 服务器和您的 DNS 提供商 API。
- 提示 EAB 错误:
- 仔细核对您从 Google Cloud 获取的 EAB Key ID 和 EAB HMAC Key 是否与 ServBay 中填写的一致。
- 确认这些 EAB 凭据在 Google Cloud 端仍然有效,没有被撤销或过期。
- 申请过程长时间无响应或卡住:
- 检查 ServBay 的日志文件(通常位于 ServBay 应用目录下的
logs
文件夹中),查找更具体的错误信息。 - 暂时关闭防火墙或安全软件,排除它们干扰 ACME 通信的可能性。
- 确保您的网络连接稳定。
- 检查 ServBay 的日志文件(通常位于 ServBay 应用目录下的
总结
通过 ServBay 集成的 ACME 功能和对 Google Trust Services 的支持,获取并管理受信的 SSL 证书变得前所未有的便捷。这不仅简化了本地开发环境的 HTTPS 配置,提升了安全性,也为模拟生产环境提供了便利。利用 ServBay 的自动化能力,您可以专注于开发,而将证书管理的复杂性交给工具处理,确保您的网站连接始终安全可靠。