Если у вас уже работает nginx с другими доменами и сайтами, настройка SSL для панели x-ui может вызвать конфликты на порту 80. В этой статье мы покажем, как безопасно получить SSL-сертификат для панели x-ui, используя webroot метод с acme.sh, не нарушая работу других сайтов.
1. Создание webroot для проверки Let's Encrypt
Создаём отдельную папку для проверки сертификата:
sudo mkdir -p /var/www/acme-panel
sudo chown -R www-data:www-data /var/www/acme-panelЭто будет директория для .well-known/acme-challenge, куда Let's Encrypt будет записывать временные файлы проверки.
2. Настройка nginx для нового домена панели
Создаём новый конфиг для nginx, чтобы обслуживать только проверку ACME:
sudo nano /etc/nginx/sites-available/panel.example.comПример конфигурации:
server {
listen 80;
server_name panel.example.com;
location /.well-known/acme-challenge/ {
root /var/www/acme-panel;
}
location / {
return 301 https://$host$request_uri;
}
}- panel.example.com — замените на ваш домен панели.
- Этот блок обеспечит работу проверки Let's Encrypt, не затрагивая другие сайты.
sudo ln -s /etc/nginx/sites-available/panel.example.com /etc/nginx/sites-enabled/panel.example.com
sudo nginx -t
sudo systemctl reload nginxПроверяем синтаксис и перезагружаем nginx.
4. Получение сертификата через acme.sh (webroot)
Теперь можно получить сертификат для панели:
/root/.acme.sh/acme.sh --issue -d panel.example.com --webroot /var/www/acme-panelЕсли сертификат уже был получен ранее и действителен:
/root/.acme.sh/acme.sh --issue -d panel.example.com --webroot /var/www/acme-panel --forceСертификат и ключ будут в директории:
~/.acme.sh/panel.example.com/fullchain.cer
~/.acme.sh/panel.example.com/privkey.key5. Установка сертификата в x-ui
- Открываем x-ui → SSL Certificate Management → Set Cert paths for the panel.
- Указываем пути к сертификату и приватному ключу:
/full/path/to/fullchain.cer
/full/path/to/privkey.key- Выбираем команду перезагрузки после обновления:
systemctl reload nginx ; x-ui restart- Проверяем доступ по HTTPS:
https://panel.example.com:84436. Автообновление сертификата
acme.sh автоматически обновляет сертификат и выполняет команду перезагрузки, чтобы x-ui и nginx всегда использовали актуальный SSL.
7. Важные рекомендации
- Не используйте порт 80 для панели, если уже есть сайты на nginx, обслуживающие HTTP.
Используйте webroot метод, чтобы избежать конфликтов.
Храните пути к сертификатам отдельно и делайте резервные копии.
Для безопасной работы панели рекомендуется использовать сложный и уникальный URI подписки.
Заключение
С помощью webroot метода и acme.sh можно настроить SSL для панели x-ui на сервере с уже работающими сайтами. Этот подход безопасен и удобен для серверов с множеством доменов, позволяя получать и обновлять сертификаты автоматически, не останавливая nginx.

Комментарии