如何申请和使用域名 SSL 证书
在现代 Web 开发中,为您的网站启用 HTTPS(通过 SSL/TLS 证书保护)变得越来越重要,即使是在本地开发环境中也是如此。ServBay 提供便捷的方式来管理和应用 SSL 证书,帮助您模拟生产环境、测试安全功能以及确保本地开发的顺畅进行。
本文档将指导您如何在 ServBay 中申请、分配和管理 SSL/TLS 证书。
域名 SSL/TLS 证书简介
SSL/TLS 证书是一种数字证书,用于验证服务器身份并加密客户端(如浏览器)和服务器之间的数据传输。安装 SSL 证书后,网站地址将从 http://
变为 https://
,并在浏览器地址栏显示安全锁图标,表明连接是加密和安全的。
为什么在本地开发中使用 HTTPS?
- 模拟生产环境: 许多生产环境强制使用 HTTPS。在本地使用 HTTPS 可以更准确地模拟生产环境,减少部署时的意外问题。
- 测试安全功能: 一些现代浏览器功能(如 Service Workers, Web Authentication, Geolocation API 等)要求在安全上下文(HTTPS)中运行。本地使用 HTTPS 可以方便地测试这些功能。
- 避免混合内容警告: 如果您的网站在 HTTPS 上运行,但加载了来自 HTTP 源的资源(图片、脚本、CSS),浏览器会发出混合内容警告。在本地使用 HTTPS 可以帮助您提前发现并修复这些问题。
- HTTP/2 和 QUIC: 这些现代协议通常需要 HTTPS 连接。
通过 ServBay 申请 SSL 证书
ServBay 支持两种主要的 SSL 证书申请方式:使用 ServBay 自带的 CA (Certificate Authority) 签发本地信任证书,以及通过 ACME 协议(如 Let's Encrypt)申请公共信任证书。
前提条件
- 已安装并运行 ServBay。
- 已在 ServBay 中创建并配置好需要应用 SSL 证书的网站。
- 对于使用 ACME 申请公共信任证书,您需要使用 DNS 验证方式。
步骤:进入 SSL 证书管理面板
在 ServBay 应用程序的侧边栏中,点击 "SSL Certificates" 即可进入证书管理界面。
方式一:使用 ServBay CA 签发本地信任证书
ServBay CA 是 ServBay 自带的证书颁发机构。使用 ServBay CA 签发的证书仅在信任 ServBay CA 的设备上受信任。这非常适合本地开发环境,因为您可以轻松地让您的开发设备信任 ServBay CA。
- 点击添加按钮: 在 "SSL Certificates" 页面中,点击右上角的 "+" 按钮。
- 填写证书信息: 在 "Request Certificate" 页面中:
- Common Name (通用名称): 为此证书指定一个描述性名称,方便您识别。例如
ServBay Demo Website Cert
。 - Usage Purpose (用途): 选择证书用途,通常选择
TLS/SSL
。 - Request Method (申请方法): 选择
ServBay CA
。 - Issuer (颁发机构): 选择
ServBay User CA
。ServBay 提供了用户级别的 CA 用于签发本地证书。 - Algorithm (算法): 选择加密算法,推荐使用更现代且高效的
ECC
。如果您需要更广泛的兼容性(例如旧系统),可以选择RSA
。 - Key Length (密钥长度): 选择密钥长度。对于 ECC,推荐
384
;对于 RSA,推荐2048
或4096
。长度越长通常越安全,但计算开销也越大。 - Domain (域名): 【重要】 输入您需要保护的域名列表。这些域名将被添加到证书的 Subject Alternative Names (SANs) 字段中。为本地开发,您可以使用
.servbay.demo
域名(例如servbay.demo
,myproject.servbay.demo
)或其他您在本地 hosts 文件或 ServBay 中配置的域名。支持泛域名,例如*.servbay.demo
。多个域名用逗号分隔。
- Common Name (通用名称): 为此证书指定一个描述性名称,方便您识别。例如
- 点击 "Request" 按钮: 确认信息无误后,点击页面底部的 "Request" 按钮。
ServBay 将立即使用 ServBay User CA 为您签发证书并添加到列表中。
(图示为 ServBay CA 申请界面示例)
如何信任 ServBay User CA?
为了让浏览器和其他应用程序信任 ServBay CA 签发的证书,您需要在操作系统中安装并信任 ServBay User CA 根证书。ServBay 通常会在安装时自动安装并信任此 CA,或者您可以在 ServBay 的设置
中找到相关选项进行安装。安装并信任后,使用 ServBay CA 为 .servbay.demo
或其他指定域名签发的证书在您的设备上就不会显示“不受信任”的警告了。
方式二:使用 ACME (Let's Encrypt) 申请公共信任证书
ACME (Automated Certificate Management Environment) 是一种自动化协议,常用于与公共 CA(如 Let's Encrypt)交互,自动申请和管理免费的公共信任 SSL 证书。使用这种方式申请的证书会被所有主流浏览器和设备默认信任。
- 点击添加按钮: 在 "SSL Certificates" 页面中,点击右上角的 "+" 按钮。
- 填写证书信息: 在 "Request Certificate" 页面中:
- Common Name (通用名称): 指定一个描述性名称。
- Usage Purpose (用途): 选择
TLS/SSL
。 - Request Method (申请方法): 选择
ACME
。 - Issuer (颁发机构): 选择
Let's Encrypt
、ZeroSSL
或者Google Trust Services
(这代表通过 ServBay 与公共 CA 交互)。 - Algorithm (算法): 选择算法,推荐
ECC
。 - Key Length (密钥长度): 选择密钥长度。
- Domain (域名): 【重要】 输入您需要申请公共信任证书的域名列表。这些域名必须是公共域名,并且您需要拥有这些域名的控制权。ServBay 将使用 ACME 协议验证域名所有权。多个域名用逗号分隔,支持泛域名(注意:泛域名申请通常需要 DNS 验证)。
- Email (邮箱): 输入一个有效的邮箱地址。这是 ACME 协议要求的,用于接收证书到期通知等重要信息。
- DNS Provider (DNS 提供商): 选择公共域名的 DNS 服务提供商,用于自动添加 DNS 记录验证域名所有权并签发 SSL 证书。
- 点击 "Request" 按钮: 确认信息无误后,点击页面底部的 "Request" 按钮。
ServBay 将开始执行 ACME 流程,与选择的 CA 进行交互,验证域名所有权,并最终申请证书。这个过程可能需要一些时间,具体取决于验证方式和网络状况。成功后,证书将添加到列表中。
ACME 证书的自动续期:
使用 ACME 申请的证书通常有效期较短(如 Let's Encrypt 证书有效期为 90 天)。ServBay 会自动管理这些证书的续期,确保它们在到期前得到更新,无需手动操作。
证书分配使用
申请到 SSL 证书后,您需要将其分配给 ServBay 中的特定网站,以启用该网站的 HTTPS 访问。
- 进入网站管理: 在 ServBay 侧边栏中,点击 "Websites" 进入网站列表。
- 编辑目标网站: 找到您需要应用 SSL 证书的网站并点击。
- 配置 SSL: 在网站配置页面中,找到与 SSL/HTTPS 相关的设置区域。
- 启用 HTTPS 并选择证书: 选择 HTTPS 的选项。在证书下拉列表(如果选择了 ACME)中,选择您刚刚申请到的 SSL 证书。列表会显示证书的通用名称和关联的域名。
- 保存设置: 保存网站配置。
保存后,ServBay 会重新加载相关的 Web 服务器配置(如 Caddy、Apache 或 Nginx),使新的 SSL 证书生效。现在,您应该可以通过 https://您的域名
来访问您的网站了。
证书管理
在 "SSL Certificates" 面板中,您可以对已有的证书进行管理。
证书续期
- ServBay CA 证书: 由于 ServBay CA 证书有效期较长(通常为 800 天),到期前,您可以在证书列表找到对应的证书,点击右侧的续期按钮(通常是刷新或循环图标)进行手动续期。每次续期都会将有效期延长至当前日期 + 800 天。
- ACME 证书: ACME 证书(如 Let's Encrypt)由 ServBay 自动管理续期,无需手动操作。
证书导出
您可以导出已申请的 SSL 证书,这在某些情况下可能有用(例如,需要在其他设备或服务上使用相同的 ServBay CA 证书,前提是该设备也信任 ServBay CA)。
- 进入 SSL 证书管理面板。
- 找到需要导出的证书。
- 点击操作按钮: 点击证书右侧的导出图标(通常是向右箭头➡️)。
- 选择导出目录: 在弹出的文件保存对话框中,选择证书导出后要保存的位置。
- 分发证书: 导出的证书通常会打包成一个 ZIP 文件,其中包含证书文件(
.crt
或.cer
)、私钥文件(.key
)以及相关的 CA 链文件。您可以根据需要分发和安装这些文件。
证书删除
如果某个证书不再需要,可以将其删除。
- 进入 SSL 证书管理面板。
- 找到需要删除的证书。
- 点击操作按钮: 点击证书右侧的删除图标(通常是垃圾桶图标)。
- 确认删除: 在弹出的确认对话框中,确认删除操作。注意: 删除证书是不可逆的操作。如果该证书当前正被某个网站使用,您需要先为该网站配置其他证书或禁用 HTTPS,否则可能会导致网站无法访问。
常见问题 (FAQ)
Q: 为什么我使用 ServBay CA 签发的证书,浏览器还是提示“不受信任”?
A: ServBay CA 证书默认不被操作系统或浏览器信任。您需要在您的开发设备上安装并信任 ServBay User CA 根证书。请检查 ServBay 的设置或文档,查找如何安装和信任 ServBay User CA。
Q: 我申请了 ACME (Let's Encrypt) 证书,但是申请失败了,怎么办?
A: ACME 申请失败通常是由于域名验证不通过。
- 如果您使用
dns-01
验证,请仔细检查您在域名注册商或 DNS 服务商处添加的 TXT 记录是否正确,并且已经完全生效(DNS 记录更新需要时间)。 查看 ServBay 的日志通常能找到具体的错误原因。
Q: 我可以在 ServBay 中为多个域名申请一个证书吗?
A: 是的,在申请证书时,您可以在 "Domain" 字段中输入多个域名,用逗号分隔。这将创建一个包含所有这些域名的 SANs 证书。
Q: ServBay 支持哪些 Web 服务器?证书配置是通用的吗?
A: ServBay 支持 Caddy、Apache 和 Nginx 等 Web 服务器。ServBay 的 SSL 证书管理界面是统一的,您申请的证书可以在 ServBay 管理的任何支持 SSL 的网站上使用,ServBay 会自动为您配置底层 Web 服务器。
总结
ServBay 为本地开发环境提供了强大且易用的 SSL 证书管理功能。通过 ServBay CA,您可以快速为本地域名签发信任证书,方便进行 HTTPS 开发和测试。通过集成 ACME 协议,您还可以直接在 ServBay 中为公共域名申请和管理公共信任的 Let's Encrypt、ZeroSSL、Google Trust Services 证书。掌握这些功能,将帮助您构建更安全、更符合现代标准的 Web 应用程序。
如果您在证书申请或使用过程中遇到任何问题,建议查阅 ServBay 的官方文档或社区获取更多帮助。