在 BitrixVM 上使用 Auto SSL
BitrixVM 是在 Apache 前置 nginx 并带有自带配置菜单的 CentOS 或 AlmaLinux。标准菜单项只签发 Let's Encrypt 证书(通过 dehydrated),因此对于 Auto SSL,由 acme.sh 获取 Sectigo 证书,再通过 BitrixVM 菜单"Configure own certificate"接入——这样环境更新时配置不会被覆盖。
在哪里获取密钥
- 在个人中心 1host.kz/bill 打开"Auto SSL (Sectigo ACME)"服务(可在 Auto SSL 页面下单)。
- 点击"Configure Now"(配置),在"Single Domains"中填写域名(
www与不带www视为同一域名),通配符填入"Wildcard Domains"。 - 5–30 秒后显示 ACME account ID、EAB MAC ID、EAB MAC key、Server URL。
命令中:Server URL 为 https://acme.sectigo.com/v2/DV,YOUR_EAB_KID 为 EAB MAC ID,YOUR_EAB_HMAC_KEY 为 EAB MAC key。
BitrixVM 的特点
- 默认网站根目录为
/home/bitrix/www;附加网站位于/home/bitrix/ext_www/域名。 - 证书保存在
/etc/nginx/certs/;BitrixVM 菜单接受 PEM 格式的自有文件。 - 80 端口必须在 firewalld 中开放:
firewall-cmd --list-services应显示http https。 - 如果之前通过菜单启用过 Let's Encrypt,其 dehydrated 任务会继续运行并可能覆盖证书——切换到 Sectigo 后请将该域名从中移除(见错误一节)。
安装 acme.sh 并注册
acme.sh 在 CentOS 7 和 AlmaLinux 9 上运行方式相同,且不像 EPEL 中的 certbot 那样需要软件包。以 root 身份:
curl https://get.acme.sh | sh -s [email protected]
source ~/.bashrc
acme.sh --register-account --server https://acme.sectigo.com/v2/DV \
--eab-kid YOUR_EAB_KID --eab-hmac-key YOUR_EAB_HMAC_KEY
acme.sh --set-default-ca --server https://acme.sectigo.com/v2/DV
如果更喜欢 certbot,请安装它(dnf install epel-release certbot),并使用通过 certbot 使用 Auto SSL一文中的命令,加上 --webroot -w /home/bitrix/www。
签发并通过 BitrixVM 菜单接入
通过网站根目录签发证书(BitrixVM 的 nginx 直接从该目录提供静态文件,包括 /.well-known/acme-challenge/):
acme.sh --issue -d example.kz -d www.example.kz -w /home/bitrix/www
将文件放到 /etc/nginx/certs/ 下的固定路径,并设置续期后重载 nginx:
mkdir -p /etc/nginx/certs/example.kz
acme.sh --install-cert -d example.kz \
--key-file /etc/nginx/certs/example.kz/privkey.pem \
--fullchain-file /etc/nginx/certs/example.kz/fullchain.pem \
--reloadcmd "systemctl reload nginx"
现在通过 BitrixVM 菜单接入:运行 /root/menu.sh →"9. Manage pool web servers"→"2. Configure certificates"→"2. Configure own certificate"。填写:
- Sitename——BitrixVM 中的网站名称(主站为
default,或附加网站的名称); - Private Key path——
/etc/nginx/certs/example.kz/privkey.pem; - Certificate path——
/etc/nginx/certs/example.kz/fullchain.pem; - Certificate Chain path——可留空,证书链已包含在
fullchain.pem中。
菜单会重写 nginx 配置并重启它。已应用的路径显示在同一菜单部分。
待确认:"Configure own certificate"菜单是将文件复制到自己的目录,还是引用指定的路径——配置后请将菜单中显示的路径与上述路径对比;如果不同,请在 --install-cert 中使用菜单显示的路径(不建议手动编辑 /etc/nginx/bx/conf/ssl.conf——该文件属于 BitrixVM 环境)。
同一台机器上的多个网站
每个附加网站单独签发,使用各自的 webroot(-w /home/bitrix/ext_www/shop.example.kz)、/etc/nginx/certs/ 下各自的目录以及菜单中各自的网站名称。所有域名都必须在 Auto SSL 订阅中(shop.example.kz 之类的子域名是单独的域名)。
常见错误
- 验证失败(timeout)——80 端口关闭:
firewall-cmd --permanent --add-service=http && firewall-cmd --reload;或域名未指向该机器。 - 证书又变回 Let's Encrypt——BitrixVM 菜单的标准 dehydrated 任务在运行(每周六 2:00)。请将域名从其配置中移除,或通过菜单重新将网站切换到您的证书;如有疑问,请联系技术支持。
- CA 拒绝订单——域名不在订阅中;请在个人中心添加。
- BitrixVM 更新后网站使用了其他证书——使用相同路径重复"Configure own certificate"。
检查与续期
echo | openssl s_client -connect example.kz:443 -servername example.kz 2>/dev/null \
| openssl x509 -noout -issuer -dates
acme.sh --list
crontab -l | grep acme.sh
颁发者为 Sectigo Limited,cron 行表示已启用续期。acme.sh 在到期前约 30 天更新证书并执行 systemctl reload nginx。完整测试流程:acme.sh --renew -d example.kz --force,再运行 openssl——notAfter 日期应有变化。Auto SSL 订阅每年通过账单续费一次(账单提前 14 天开出)。如有问题,请通过个人中心联系 ONEHOST 技术支持,全天候服务。