Auto SSL в cPanel
Не путайте два похожих названия. AutoSSL в cPanel — встроенная функция, которая выпускает бесплатные сертификаты у провайдеров Let's Encrypt или cPanel (Sectigo); свой ACME-сервер с EAB-ключами туда добавить нельзя. Auto SSL от ONEHOST — подписка на домен, по которой сертификаты Sectigo выпускает ваш ACME-клиент. На сервере с cPanel таким клиентом будет acme.sh, а установку в аккаунт он сделает сам через cPanel API.
Где взять ключи
- В личном кабинете 1host.kz/bill откройте услугу «Auto SSL (Sectigo ACME)» (оформить — на странице Auto SSL).
- Нажмите «Configure Now» («Настроить»), введите домены в «Single Domains» (
wwwи безwww— один домен), wildcard — в «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.
Что понадобится
- Доступ к shell аккаунта cPanel (SSH или «Terminal» в cPanel) либо root на сервере с WHM.
- Домен добавлен в аккаунт cPanel и указывает на сервер; порт 80 открыт.
- Если для домена включён AutoSSL, отключите его для этого домена (cPanel → «SSL/TLS Status» → «Exclude from AutoSSL»), иначе cPanel может заменить сертификат Sectigo своим.
Установка acme.sh в аккаунте пользователя
Лучше ставить acme.sh от самого пользователя cPanel — тогда deploy-hook установит сертификат без лишних прав:
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
Регистрация — один раз; аккаунт с ключами сохраняется в ~/.acme.sh/.
Выпуск и установка через cpanel_uapi
Выпуск через webroot — каталог сайта (~/public_html для основного домена, ~/public_html/поддомен или путь из «Domains» для дополнительных):
acme.sh --issue -d example.kz -d www.example.kz -w ~/public_html
Установка в аккаунт штатным deploy-hook acme.sh для cPanel:
acme.sh --deploy -d example.kz --deploy-hook cpanel_uapi
Хук вызывает uapi SSL install_ssl и запоминается: после каждого автопродления сертификат переустановится сам. Ограничение из документации acme.sh: при продлении хук ставит сертификат только на первый домен из команды выпуска, поэтому на каждый домен (со своим www) выпускайте отдельный сертификат. Если acme.sh запущен от root, укажите пользователя: export DEPLOY_CPANEL_USER=cpuser перед --deploy.
Ручная альтернатива без хука — cPanel → «SSL/TLS» → «Manage SSL sites»: выберите домен, вставьте «Certificate (CRT)» из ~/.acme.sh/example.kz_ecc/example.kz.cer, «Private Key (KEY)» из example.kz.key, «Certificate Authority Bundle (CABUNDLE)» из ca.cer и нажмите «Install Certificate». Или той же командой из консоли:
uapi --user=cpuser SSL install_ssl domain=example.kz \
cert="$(cat ~/.acme.sh/example.kz_ecc/example.kz.cer)" \
key="$(cat ~/.acme.sh/example.kz_ecc/example.kz.key)" \
cabundle="$(cat ~/.acme.sh/example.kz_ecc/ca.cer)"
Типовые ошибки
- Проверка домена не проходит —
wwwили сам домен указывает на другой сервер; проверьтеdig +short www.example.kz. Для доменов за прокси (Cloudflare) используйте--dns. - ЦС отклоняет заказ — домена нет в подписке Auto SSL; добавьте его в кабинете («Add domain»).
- Сертификат «откатился» на cPanel/Let's Encrypt — домен не исключён из AutoSSL.
- Нет доступа к shell — попросите включить его в WHM («Manage Shell Access») или напишите в поддержку ONEHOST, настроим.
Проверка и продление
cPanel → «SSL/TLS Status»: у домена должен быть сертификат от Sectigo с новой датой. Из консоли:
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
Задание cron acme.sh продлевает сертификат примерно за 30 дней до конца срока и запускает deploy-hook. Проверить цепочку целиком: acme.sh --renew -d example.kz --force, затем снова openssl — дата notAfter должна измениться. Подписка Auto SSL продлевается счётом раз в год; счёт выставляется за 14 дней. Помощь — в поддержке ONEHOST, круглосуточно.