帮助

在 BitrixVM 上使用 Auto SSL

BitrixVM 是在 Apache 前置 nginx 并带有自带配置菜单的 CentOS 或 AlmaLinux。标准菜单项只签发 Let's Encrypt 证书(通过 dehydrated),因此对于 Auto SSL,由 acme.sh 获取 Sectigo 证书,再通过 BitrixVM 菜单"Configure own certificate"接入——这样环境更新时配置不会被覆盖。

在哪里获取密钥

  1. 在个人中心 1host.kz/bill 打开"Auto SSL (Sectigo ACME)"服务(可在 Auto SSL 页面下单)。
  2. 点击"Configure Now"(配置),在"Single Domains"中填写域名(www 与不带 www 视为同一域名),通配符填入"Wildcard Domains"。
  3. 5–30 秒后显示 ACME account IDEAB MAC IDEAB MAC keyServer URL

命令中:Server URL 为 https://acme.sectigo.com/v2/DVYOUR_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 技术支持,全天候服务。

如有任何疑问,请联系我们