本指南涵盖在 LiteSpeed(包括OpenLiteSpeed和LiteSpeed Enterprise)上安装 ACME SSL 证书所需的所有内容。

您只需设置 ACME 客户端、将其连接到证书提供商、申请安全证书并配置 LiteSpeed 以使用该证书,所有步骤一目了然。完成后,您的证书将自动更新,无需人工干预。
我们将使用ACME.sh,这是一款轻量级的可靠工具,支持外部账户绑定(EAB),Sectigo和DigiCert 的商用 ACME SSL 都需要它。
开始前所需物品
确保你已经准备好了这些:
- 已安装 LiteSpeed Web 服务器(OpenLiteSpeed 或 Enterprise)
- 具有 root 或 sudo 权限的 SSH 访问权限
- 您的域名指向该服务器的 A/AAAA DNS 记录
- 有效的ACME SSL 订阅(来自 Sectigo 或 DigiCert)
- 您的EAB 证书(KID + HMAC 密钥)
- 80 端口开放 – ACME 挑战通过普通 HTTP 运行
- 通过出站互联网访问您的 ACME 提供商端点
要使用的 ACME 端点:
- Sectigo: https://acme.sectigo.com/v2/DV
- DigiCert: https://acme.digicert.com/v2/acme
步骤 1:安装 ACME.sh
我们先安装 ACME.sh,它是一个轻量级脚本,用于处理证书请求和更新。
打开终端窗口(SSH),以根用户身份连接到您的 LiteSpeed 服务器。如果您使用的是 VPS 或云服务器,请使用以下方式连接:
ssh root@your-server-ip
进入后,运行以下命令安装 ACME.sh:
curl https://get.acme.sh | sh
source ~/.bashrc
acme.sh --version
这将下载脚本、设置环境并确认安装正确。
如果安装失败:
- 确保服务器上安装了
curl和git - 如果卡住了,请使用–force重新安装
步骤 2:注册 ACME 账户(使用 EAB)
此步骤使用订阅中的 EAB 凭据将 ACME 客户端与 CA 连接。
acme.sh --register-account \
--server https://acme.sectigo.com/v2/DV \
--eab-kid EAB_KID \
--eab-hmac-key EAB_HMAC_KEY \
--accountemail [email protected]
用您的真实凭证替换这些值。如果您已经用同一个 EAB 对注册过,没有问题,ACME.sh会重复使用现有账户。
如果失败,请检查:
- 您的 EAB 证书是否正确?
- 您的服务器能否连接到 HTTPS(443 端口)?
步骤 3:设置 Webroot 并测试 HTTP 验证
ACME 使用 HTTP-01 挑战来验证域名所有权。这意味着您的服务器需要在以下地址做出响应: http://yourdomain.com/.well-known/acme-challenge/
这意味着 ACME 客户端会在名为.well-known 的文件夹中放入一个测试文件,而你的服务器必须通过纯HTTP(80 端口)提供该文件。
您服务器上的 Webroot 在哪里?
这取决于你正在运行的系统。在OpenLiteSpeed(全新安装)上,默认情况下网络根目录位于/usr/local/lsws/Example/html。
在LiteSpeed Enterprise(WHM 或手动配置)中,Web 根目录位于域名指向的位置,通常类似于/home/youruser/public_html
创建验证文件夹和测试文件
在文档根目录下(调整路径以符合您的需要),运行
mkdir -p /your/webroot/.well-known/acme-challenge
echo "ok" > /your/webroot/.well-known/acme-challenge/testfile
curl -I http://yourdomain.com/.well-known/acme-challenge/testfile
If you see HTTP/1.1 200 OK, your server is ready to answer ACME challenges.
如果您强制使用 HTTPS 呢?
如果您的网站自动将 HTTP 重定向到 HTTPS,则需要为 ACME 路径设置一个例外,以便在验证过程中保持 HTTP。将此添加到.htaccess文件中:
RewriteEngine On
# Let ACME validation go through
RewriteRule ^\.well-known/acme-challenge/ - [L]
# Redirect everything else to HTTPS
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
这样,即使您的网站使用 HTTPS,挑战也能正常进行。
额外检查:80 端口是否打开?
如果验证失败,您的服务器可能没有监听 HTTP。请检查您的 LiteSpeed 监听器。
用于 OpenLiteSpeed:
- 登录到 LiteSpeed WebAdmin: https://:7080
- 导航至Listeners > Default (在新安装时存在)。
- 套装
- 端口 = 80
- IP = 任意
适用于 LiteSpeed Enterprise:
登录 WHM 或 WebAdmin,确保您的域名正在监听 80 端口。如果其他服务正在使用该端口,请运行
sudo lsof -i :80
停止冲突进程,然后重新启动 LiteSpeed。
第 4 步:颁发 SSL 证书
现在该通过 ACME 客户端申请 SSL 证书了。你将直接在服务器终端(SSH)上运行此命令,也就是你之前安装 ACME.sh 的地方。
acme.sh --issue \
-d yourdomain.com \
-w /path/to/your/webroot \
--server https://acme.yourca.com/v2/endpoint
让我们来分析一下:
- acme.sh –issue —告诉 ACME.sh 你要签发新证书。
- -d yourdomain.com– 您的主域名。您可以为子域或 www 版本添加更多 -d 标志,如 -d www.yourdomain.com。
- -w /path/to/your/webroot– 网站文档根目录的完整路径。
- –server https://acme.yourca.com/v2/endpoint– 替换为 CA 的 ACME URL:
- Sectigo: https://acme.sectigo.com/v2/DV
- DigiCert: https://acme.digicert.com/v2/acme
如果失败时出现以下错误”未授权”、”未委托 “或 “无效响应 “等错误,则通常意味着:
- 域名的 DNS A/AAAA 记录尚未指向该服务器。
- 您的 webroot 路径错误。ACME 找不到挑战文件。
- 端口 80 已被阻止或重定向到 HTTPS。
- 您的产品使用了错误的 CA 服务器 URL。
步骤 5:安装证书并设置重新加载
现在我们安装证书,并告诉 LiteSpeed 在更新后重新加载。
首先,为证书创建一个目录:
mkdir -p /usr/local/lsws/conf/cert/yourdomain.com
然后安装:
acme.sh --install-cert -d yourdomain.com \
--key-file /usr/local/lsws/conf/cert/yourdomain.com/yourdomain.com.key \
--fullchain-file /usr/local/lsws/conf/cert/yourdomain.com/yourdomain.com.crt \
--reloadcmd "/usr/local/lsws/bin/lswsctrl reload"
修复权限:
chmod 600 /usr/local/lsws/conf/cert/yourdomain.com/yourdomain.com.key
chown -R nobody:nogroup /usr/local/lsws/conf/cert/yourdomain.com
将nobody:nogroup替换为实际的 LiteSpeed 用户和用户组(如果不同)。
第 6 步:在 LiteSpeed 中配置 HTTPS
现在证书已安装完毕,让我们将其连接到 LiteSpeed,以便通过 HTTPS 加载网站。
用于 OpenLiteSpeed(WebAdmin 面板)
- 登录 WebAdmin 控制台。访问:https://your-server-ip:7080
- Create a secure HTTPS listener. In the left menu, go to: Listeners > Add > Then set the following:
- 名称: HTTPSHTTPS
- IP 地址:任意
- 端口:443
- 安全:是
- 单击保存。
- 保存后,单击新的 HTTPS 监听器并转到SSL 选项卡。
- 输入先前安装的证书和密钥文件的完整路径,然后再次单击保存 。
- 私钥文件:/usr/local/lsws/conf/cert/yourdomain.com/yourdomain.com.key
- 证书文件: /usr/local/lsws/conf/cert/yourdomain.com/yourdomain.com.crt
- 仍在HTTPS监听器下,转到虚拟主机映射选项卡。
- 添加这样一个映射:
- 虚拟主机:Example (如果更改了虚拟主机名称,请将 Example 替换为实际虚拟主机名称。)
- 域:*
- 要应用所有更改,请重新启动 LiteSpeed。您可以从 WebAdmin 执行此操作:操作 > 优雅重启
适用于 LiteSpeed 企业版
如果您使用的是 LiteSpeed Enterprise(例如使用 WHM/cPanel),步骤类似,但布局可能略有不同。
- 访问 WebAdmin 或 WHM
- 使用 WebAdmin 面板(同上)或通过主机面板配置 SSL。
- 分配证书和密钥路径
- 在定义域名虚拟主机的任何位置设置:
- 私钥文件:/usr/local/lsws/conf/cert/yourdomain.com/yourdomain.com.key
- 证书文件:/usr/local/lsws/conf/cert/yourdomain.com/yourdomain.com.crt
- 重新加载 LiteSpeed
- 运行服务 lsws reload应用更改
就是这样。一旦 LiteSpeed 重新加载,您的网站将开始使用您安装的 ACME 证书通过 HTTPS 提供流量。
第 7 步:检查 HTTPS 和自动更新
访问您的网站。您应该看到
- 正确的 CN/SAN
- 无浏览器警告
现在检查 ACME.sh 是否添加了 cron 作业:
crontab -l
应该是这样的
24 13 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null
手动测试更新:
acme.sh --renew -d yourdomain.com --force
tail -n 40 ~/.acme.sh/acme.sh.log
如果重新加载命令正确无误,LiteSpeed 会自动获取新证书。
有问题?检查内容如下
如果在签发或续期过程中出现问题,这些快速检查应该可以解决:
挑战文件上的 “404 未找到
- 检查您使用的-w 路径。它是否指向正确的文档根目录?
- 确保根目录中存在.well-known/acme-challenge/文件夹
- 尝试通过 HTTP(curl 或浏览器)手动访问测试文件
“未经授权 “或 “未授权 “错误
- 您的 DNS 可能尚未指向服务器。检查您的 A/AAAA 记录
- 再次检查 CA 服务器URL
- 您是否使用了 SSL 提供商提供的正确 EAB 凭据?
证书更新后,LiteSpeed 没有重新加载
如果您的证书更新了,但网站仍显示旧证书,这通常意味着 LiteSpeed 没有自动重新加载。请检查您使用的 LiteSpeed 版本。
如果使用的是OpenLiteSpeed,请使用以下命令手动重新加载服务器:
/usr/local/lsws/bin/lswsctrl reload
如果您使用的是LiteSpeed Enterprise,请使用:
service lsws reload
更新 ACME.sh reload 命令,使其在每次更新后运行正确的行。
--reloadcmd "/usr/local/lsws/bin/lswsctrl reload"
这将确保 LiteSpeed 在下次更新证书时自动刷新证书。
你完了
您现在已经成功地在 LiteSpeed 上安装了 ACME SSL 证书,并将其设置为自动更新,无需任何手动操作。您的服务器使用基于 EAB 的安全证书,一切都已连接到 LiteSpeed,每次更新后都会悄无声息地重新加载。




