HTTPS для Shaarli на поддомене с Let’s Encrypt

Настройка HTTPS для Shaarli на поддомене с Let’s Encrypt

Подробная инструкция по настройке защищенного подключения для Shaarli, установленного на отдельном VPS

Shaarli — отличный инструмент для управления закладками, но для обеспечения безопасности и удобства пользователей рекомендуется использовать защищенное соединение HTTPS. В предыдущей статье мы подробно рассмотрели установку Shaarli на Ubuntu 24.04. В этой статье мы разберем, как настроить HTTPS для Shaarli, установленного на отдельном VPS (VPS2), используя поддомен основного домена, который указывает на другой VPS (VPS1).

Предварительные условия

  • У вас есть основной домен icelake.ru, указывающий на VPS1 (77.77.77.77).
  • Shaarli установлен и работает на VPS2 (88.88.88.88).
  • У вас есть доступ к настройкам DNS для домена icelake.ru.
  • На VPS2 установлен и настроен Nginx для обслуживания Shaarli (обычно на порту 8769 или 80).
  • На VPS2 установлены certbot и python3-certbot-nginx.

Цель

Сделать Shaarli доступным по адресу https://shaarli.icelake.ru, обеспечив безопасное соединение с помощью бесплатного SSL-сертификата от Let’s Encrypt.

Пошаговая инструкция

Часть 1: Настройка DNS

Первым шагом является создание DNS-записи, которая направит трафик для поддомена shaarli.icelake.ru на IP-адрес VPS2.

  1. Войдите в панель управления DNS вашего домена icelake.ru. Это может быть интерфейс на VPS1 или веб-панель у вашего регистратора доменов.
  2. Найдите раздел управления DNS-записями (часто называется «DNS Management», «Zone Editor» и т.п.).
  3. Создайте новую A-запись:
    • Имя/Хост (Name/Host): shaarli
    • Тип (Type): A
    • Значение/Адрес (Value/Address): 88.88.88.88 (IP-адрес VPS2)
    • TTL: Оставьте значение по умолчанию (обычно 3600 секунд).
  4. Сохраните изменения. Распространение DNS-записи может занять некоторое время (обычно от нескольких минут до часа).

Часть 2: Настройка Nginx на VPS2

Теперь нужно настроить веб-сервер Nginx на VPS2 так, чтобы он знал, как обслуживать запросы для домена shaarli.icelake.ru.

  1. Подключитесь к вашему VPS2 (88.88.88.88) по SSH.
  2. Откройте файл конфигурации Nginx для Shaarli:
    sudo nano /etc/nginx/sites-available/shaarli
  3. Замените всё содержимое файла на следующее. Обратите внимание на изменённый server_name и удаление listen 8769 (если он был):
    server {
        listen 80;
        server_name shaarli.icelake.ru; # <-- Указываем наш поддомен
    
        root /var/www/shaarli;
        index index.php index.html;
    
        location / {
            try_files $uri $uri/ /index.php?$query_string;
        }
    
        location ~ \.php$ {
            include snippets/fastcgi-php.conf;
            fastcgi_pass unix:/var/run/php/php8.3-fpm.sock; # Убедитесь, что путь к сокету правильный
        }
    
        location ~ /\.ht {
            deny all;
        }
    }
  4. Сохраните файл и закройте редактор (в Nano: Ctrl+O, Enter, затем Ctrl+X).
  5. (Если необходимо) Отключите конфигурацию по умолчанию (если она существует и мешает):
    sudo rm -f /etc/nginx/sites-enabled/default
  6. Активируйте конфигурацию Shaarli, создав символическую ссылку (если она еще не существует):
    sudo ln -sf /etc/nginx/sites-available/shaarli /etc/nginx/sites-enabled/
  7. Проверьте конфигурацию Nginx на наличие синтаксических ошибок:
    sudo nginx -t
    • Если проверка прошла успешно, вы увидите syntax is ok и test is successful.
    • Если есть ошибки, внимательно проверьте файл /etc/nginx/sites-available/shaarli.
  8. Перезагрузите Nginx, чтобы применить изменения:
    sudo systemctl reload nginx

Часть 3: Получение SSL-сертификата с помощью Let's Encrypt

Теперь, когда DNS настроен и Nginx готов, можно получить SSL-сертификат.

  1. Убедитесь, что Certbot и плагин для Nginx установлены на VPS2:
    sudo apt update
    sudo apt install certbot python3-certbot-nginx -y
  2. Запустите Certbot для получения сертификата и автоматической настройки Nginx:
    sudo certbot --nginx -d shaarli.icelake.ru
  3. Следуйте инструкциям в терминале:
    • Возможно, потребуется ввести email для уведомлений от Let's Encrypt.
    • Примите условия использования (Terms of Service).
    • Выберите, хотите ли вы получать письма от EFF (можно отказаться).
    • Certbot автоматически изменит конфигурацию Nginx (/etc/nginx/sites-available/shaarli), добавив блоки server для HTTPS и перенаправление с HTTP на HTTPS.
  4. Проверьте, что Nginx был перезагружен Certbot'ом. Если нет, перезагрузите его вручную:
    sudo systemctl reload nginx

Часть 4: Проверка и завершение

  1. Дождитесь полного распространения DNS-записи (если это необходимо). Обычно это происходит быстро, но может занять до часа.
  2. Откройте веб-браузер и перейдите по адресу: http://shaarli.icelake.ru.
    • Вы должны быть автоматически перенаправлены на https://shaarli.icelake.ru.
    • В адресной строке браузера должно отображаться, что соединение защищено (обычно зелёный замок).
  3. Проверьте, что отображается страница Shaarli.

Часть 5: Автоматическое обновление сертификата

SSL-сертификаты Let's Encrypt действительны 90 дней. Certbot автоматически создает таймер для их обновления.

  1. Проверьте наличие таймера обновления:
    systemctl list-timers | grep certbot
    Вы должны увидеть строку, похожую на certbot.timer, что означает, что автоматическое обновление настроено.

Заключение

Теперь ваш Shaarli, установленный на VPS2, доступен по безопасному адресу https://shaarli.icelake.ru. Let's Encrypt обеспечивает бесплатный SSL-сертификат, а Certbot автоматически настраивает Nginx и обновляет сертификат по истечении срока его действия. Это значительно повышает безопасность и удобство использования вашего сервиса закладок.

© 2025 BigGratz.ru