bg-tutorials

Как установить SSL-сертификат ACME на Plesk

Если Вы управляете веб-сайтами на Plesk, Вам больше незачем работать с сертификатами вручную. При правильной настройке Вы можете автоматизировать выдачу, продление и установку SSL-сертификатов, используя протокол ACME с привязкой к внешнему аккаунту (EAB).

Plesk ACME SSL

В этом руководстве Вы узнаете, как установить SSL-сертификат ACME на Plesk (на базе Linux) с помощью ACME.sh— легкого клиента ACME, который отлично работает с Plesk.

Если Вы работаете на виртуальном хостинге, возможно, Вам не удастся воспользоваться этим методом. Большинство виртуальных сред не позволяют использовать root-доступ или пользовательские скрипты. Это руководство подходит для VPS и выделенных серверов, где Вы контролируете стек хостинга.


Прежде чем начать

Прежде чем приступать к выполнению шагов, убедитесь, что у Вас готово следующее:

  • Сервер или VPS с Plesk Obsidian
  • SSH-доступ к серверу. Либо root, либо пользователь с привилегиями sudo.
  • Живой домен, указывающий на сервер через запись A или AAAA
  • Порт 80 открыт и доступен публично (требуется для проверки HTTP-01).
  • Ваши учетные данные EAB, полученные от провайдера SSL (EAB KID и EAB HMAC Key).

Конечные точки ACME для использования:

  • Sectigo: https://acme.sectigo.com/v2/DV
  • DigiCert: https://acme.digicert.com/v2/acme

Шаг 1: Проверьте корень документа Вашего сайта в Plesk

Вам понадобится путь к корневой папке Вашего сайта, чтобы ACME.sh мог правильно разместить файлы проверки.

  1. Войдите в Plesk
  2. Перейдите в раздел Веб-сайты и домены > yourdomain.com > Настройки хостинга.
  3. Скопируйте значение корня документа. Оно выглядит как: /var/www/vhosts/yourdomain.com/httpdocs
  4. Держите этот путь под рукой, он пригодится Вам в последующих шагах.

Шаг 2: Включите SSH-доступ (если необходимо)

Если в Вашем хостинг-плане не включен SSH:

  1. Перейти к разделу Веб-сайты и домены > yourdomain.com > Доступ к веб-хостингу
  2. В разделе Доступ к серверу по SSH выберите /bin/bash или /usr/bin/bash
  3. Сохраните настройки

Если Вы находитесь на управляемом/общем хосте, обратитесь в службу поддержки, чтобы запросить доступ по SSH.


Шаг 3: Подключитесь к Вашему серверу через SSH

С локального терминала подключитесь к серверу:

ssh [email protected]

Или, если Вы используете не root-пользователя:

ssh [email protected]

Шаг 4: Установите ACME.sh

Запустите официальную программу установки:

curl https://get.acme.sh | sh
source ~/.bashrc

Затем проверьте версию, чтобы убедиться, что она установлена:

acme.sh --version

Если это не удается, убедитесь, что установлены curl и git . При необходимости Вы можете повторить установку с --force.


Шаг 5: Зарегистрируйте свою учетную запись в EAB

Регистрация ACME — это одноразовая настройка, которая связывает Ваш сервер с центром сертификации, так что будущие запросы на сертификаты будут проверяться и обрабатываться автоматически.

Эта команда регистрирует Вашу учетную запись ACME у провайдера SSL(Sectigo или DigiCert), используя Ваши уникальные учетные данные EAB.

acme.sh --register-account \
  --server https://acme.sectigo.com/v2/DV \
  --eab-kid YOUR_EAB_KID \
  --eab-hmac-key YOUR_EAB_HMAC_KEY \
  --accountemail [email protected]

Вот что означает каждая часть:

  • acme.sh --register-account — Запускает регистрацию учетной записи ACME
  • --server — URL ACME Вашего провайдера (Sectigo или DigiCert)
  • --eab-kid — Ваш идентификатор ключа EAB, полученный от провайдера
  • --eab-hmac-key — Ваш секретный ключ EAB HMAC (длинная строка)
  • --accountemail — Ваш контактный адрес электронной почты для учетной записи ACME

Эта команда должна быть настроена с учетом Ваших настоящих данных EAB и адреса электронной почты. Не копируйте ее как есть.

Если Вы оставите в тексте такие символы, как YOUR_EAB_KID, команда завершится неудачей с ошибкой аутентификации.

После успешного запуска Ваш сервер получает право запрашивать SSL-сертификаты у этого провайдера; в будущем нет необходимости регистрироваться снова, если только Вы не смените провайдера или учетные данные.


Шаг 6: Подготовка к проверке HTTP

Создайте каталог вызовов ACME:

mkdir -p /var/www/vhosts/yourdomain.com/httpdocs/.well-known/acme-challenge

Затем проверьте, работает ли это:

echo "ok" > /var/www/vhosts/yourdomain.com/httpdocs/.well-known/acme-challenge/testfile
curl -I http://yourdomain.com/.well-known/acme-challenge/testfile

Вы должны увидеть HTTP/1.1 200 OK. Если нет, проверьте правила брандмауэра, доступ к порту 80 или путь к корню документа.


Шаг 7: Обход принудительного HTTPS для ACME Path

Если Ваш сайт перенаправляет весь трафик на HTTPS, это нарушит проверку HTTP-01, если только Вы не разрешите папке challenge обойти ее.

Если Вы используете Apache (по умолчанию в Plesk Linux)

Отредактируйте Ваш файл .htaccess в корне документа и добавьте это в начало:

RewriteEngine On
RewriteRule ^.well-known/acme-challenge/ - [L]
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Если Вы используете Nginx (или Nginx работает с Apache)

Apache .htaccess здесь не поможет, потому что Nginx обрабатывает перенаправление первым. Вместо этого Вам нужно добавить пользовательскую директиву Nginx в Plesk:

  1. Перейдите в раздел Веб-сайты и домены > yourdomain.com > Настройки Apache и Nginx.
  2. Найдите поле с надписью Дополнительные директивы Nginx
  3. Вставьте это:
location ^~ /.well-known/acme-challenge/ {
root /var/www/vhosts/yourdomain.com/httpdocs;
allow all;
try_files $uri =404;
}

Это указывает Nginx обслуживать путь вызова напрямую, без HTTPS-перенаправления или проксирования на Apache. Сохраните и примените изменения.


Шаг 8: Выдача сертификата

Теперь Вы можете запросить сертификат. Вот пример с Sectigo и двумя вариантами доменов:

acme.sh --issue \
  -d yourdomain.com \
  -d www.yourdomain.com \
  -w /var/www/vhosts/yourdomain.com/httpdocs \
  --server https://acme.sectigo.com/v2/DV

Вы можете включить столько флагов -d, сколько необходимо. Как только сертификат будет выпущен, ACME.sh сохраняет все в этой папке: /root/.acme.sh/yourdomain.com/

Для Plesk Вам понадобятся следующие два файла:

  • yourdomain.com.key: это Ваш закрытый ключ
  • fullchain.cer: это файл Вашего сертификата, и он включает в себя полную цепочку (Ваш сертификат + цепочка ЦС)

Это файлы, которые Вы будете загружать или использовать в CLI для установки сертификата в Plesk.


Шаг 9: Импортируйте сертификат в Plesk через пользовательский интерфейс

  1. Перейти к разделу Веб-сайты и домены > yourdomain.com > Сертификаты SSL/TLS
  2. Нажмите Добавить сертификат SSL/TLS
  3. Загрузите сертификат (выберите fullchain.cer) и закрытый ключ (выберите yourdomain.com.key). Нажмите Сохранить
  4. Вернитесь в Настройки хостинга и выберите этот сертификат в разделе Поддержка SSL/TLS.
  5. Нажмите OK или Применить

Теперь Ваш домен использует сторонний сертификат ACME SSL.


Шаг 10: Автоматизируйте импорт с помощью Plesk CLI (необязательно, идеально подходит для Cron)

Чтобы автоматизировать применение cert в будущих обновлениях, используйте CLI:

plesk bin certificate -c "acme-yourdomain" \
  -domain yourdomain.com \
  -cert-file /root/.acme.sh/yourdomain.com/fullchain.cer \
  -key-file  /root/.acme.sh/yourdomain.com/yourdomain.com.key

plesk bin domain -u yourdomain.com -ssl true -certificate-name "acme-yourdomain"
plesk bin httpdmng --reconfigure-domain yourdomain.com

Если команда plesk не распознается, попробуйте указать полный путь: /usr/sbin/plesk bin …


Шаг 11: Автоматизируйте продление с помощью сценария развертывания

ACME.sh автоматически обновляет сертификаты за ~30 дней до истечения срока действия. Но мы сделаем крючок после обновления, чтобы автоматически применять их в Plesk.

1. Создайте сценарий развертывания

nano /usr/local/bin/plesk-acme-deploy.sh

Вставьте следующее:

#!/usr/bin/env bash
set -euo pipefail

DOMAIN="yourdomain.com"
CERT_DIR="/root/.acme.sh/${DOMAIN}"
CERT_NAME="acme-${DOMAIN}"

CERT_FILE="${CERT_DIR}/fullchain.cer"
KEY_FILE="${CERT_DIR}/${DOMAIN}.key"

/usr/sbin/plesk bin certificate -c "${CERT_NAME}" \
  -domain "${DOMAIN}" \
  -cert-file "${CERT_FILE}" \
  -key-file  "${KEY_FILE}"

/usr/sbin/plesk bin domain -u "${DOMAIN}" -ssl true -certificate-name "${CERT_NAME}"
/usr/sbin/plesk bin httpdmng --reconfigure-domain "${DOMAIN}"

echo "Plesk deploy complete for ${DOMAIN}"

2. Сохраните и сделайте его исполняемым

chmod +x /usr/local/bin/plesk-acme-deploy.sh

3. Свяжите его с файлом ACME.sh

acme.sh --install-cert -d yourdomain.com \
  --key-file       ~/.acme.sh/yourdomain.com/yourdomain.com.key \
  --fullchain-file ~/.acme.sh/yourdomain.com/fullchain.cer \
  --reloadcmd "/usr/local/bin/plesk-acme-deploy.sh"

С этого момента каждое обновление будет применяться к Plesk.


Шаг 12: Проверьте все

Посетите свой сайт по адресу https://yourdomain.com. Сертификат должен быть действительным и показывать Ваш ЦС.

Чтобы протестировать обновление и развертывание вручную, запустите его:

acme.sh --renew -d yourdomain.com --force

Затем заверните журнал в хвост:

tail -n 60 ~/.acme.sh/acme.sh.log

Вы должны увидеть успешное обновление и сообщение «Развертывание Plesk завершено» в конце.


Общие проблемы и устранение неисправностей

Даже при правильной настройке не всегда все проходит гладко с первой попытки, особенно при проверке домена, перенаправлениях или путях к файлам. Ниже перечислены наиболее распространенные проблемы, с которыми Вы можете столкнуться при выпуске или продлении сертификата, и способы их быстрого решения.

HTTP-проверка прошла неудачно (404, таймаут или testfile not found)

Это означает, что файл вызова ACME не обслуживается должным образом.

  • Дважды проверьте корень документа в Plesk > Hosting Settings.
  • Убедитесь, что порт 80 открыт и не заблокирован Вашим брандмауэром, хостинг-панелью или облачным провайдером.
  • Если у Вас есть перенаправление на HTTPS, убедитесь, что /.well-known/acme-challenge/ исключен, как показано ранее.

«Неавторизованный» или «недопустимый ответ» во время выдачи

Сервер ACME не смог проверить Ваш вызов, вероятно, по одной из следующих причин:

  • DNS-записи Вашего домена еще не обновлены (запись A или AAAA отсутствует или все еще распространяется).
  • Тестовый файл был недоступен, удален слишком рано или заблокирован правилом.
  • Вы используете CDN или WAF (например, Cloudflare), которые перехватывают HTTP-трафик. Временно приостановите проксирование или внесите путь ACME в белый список.

После обновления ничего не происходит

Сертификат обновляется, но не применяется в Plesk.

Убедитесь, что путь к Вашему сценарию развертывания указан правильно в параметре —reloadcmd.

Проверьте, что скрипт исполняется, запустив его:

chmod +x /usr/local/bin/plesk-acme-deploy.sh

Загляните в журнал ACME с:

tail -n 60 ~/.acme.sh/acme.sh.log

Ошибки будут отображаться там.

Не удается выполнить импорт Plesk CLI

Ваш сценарий развертывания может быть запущен, но сертификат не будет применяться.

  • Если команда plesk не найдена, попробуйте использовать полный путь: /usr/sbin/plesk
  • Дважды проверьте, что файлы.key и .cer действительно существуют и имеют правильные имена.
  • Чтобы принудительно изменить конфигурацию вручную, выполните команду:
plesk bin httpdmng --reconfigure-domain yourdomain.com

Финальные вроды

Теперь на Вашем сервере Plesk работает чистая, полностью автоматизированная SSL-настройка. С этого момента Ваш сертификат будет автоматически обновляться в фоновом режиме, а скрипт будет обновлять Plesk сразу же, как только Вы выпустите новый сертификат. Вы получили полный контроль над жизненным циклом сертификата и сделали свою жизнь намного проще.

Сэкономьте 10% на SSL-сертификатах при заказе сегодня!

Быстрая выдача, надежное шифрование, 99,99% доверия к браузеру, специализированная поддержка и 25-дневная гарантия возврата денег. Код купона: SAVE10

Детальное изображение дракона в полете
Написано

Опытный автор контента, специализирующийся на SSL-сертификатах. Превращает сложные темы кибербезопасности в понятный, увлекательный контент. Вносите свой вклад в повышение уровня цифровой безопасности с помощью впечатляющих рассказов.

Avatar of Sergiu Rosca
Technical Review by Sergiu Rosca

Sergiu Rosca is the core web developer behind SSL Dragon. He manages the technical infrastructure, platform performance, and backend integrations that keep the site running smoothly and securely. At SSL Dragon, Sergiu shares practical insights on web development, site optimization, and technical troubleshooting.

All SSL Dragon installation guides are tested on live server environments and undergo a strict peer-review process to ensure your infrastructure remains secure. Read our full Editorial Policy.