Подробная инструкция по настройке защищенного подключения для 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.
- Войдите в панель управления DNS вашего домена
icelake.ru
. Это может быть интерфейс на VPS1 или веб-панель у вашего регистратора доменов. - Найдите раздел управления DNS-записями (часто называется «DNS Management», «Zone Editor» и т.п.).
- Создайте новую A-запись:
- Имя/Хост (Name/Host):
shaarli
- Тип (Type):
A
- Значение/Адрес (Value/Address):
88.88.88.88
(IP-адрес VPS2) - TTL: Оставьте значение по умолчанию (обычно 3600 секунд).
- Сохраните изменения. Распространение DNS-записи может занять некоторое время (обычно от нескольких минут до часа).
Часть 2: Настройка Nginx на VPS2
Теперь нужно настроить веб-сервер Nginx на VPS2 так, чтобы он знал, как обслуживать запросы для домена shaarli.icelake.ru
.
- Подключитесь к вашему VPS2 (
88.88.88.88
) по SSH. - Откройте файл конфигурации Nginx для Shaarli:
sudo nano /etc/nginx/sites-available/shaarli
- Замените всё содержимое файла на следующее. Обратите внимание на изменённый
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; } }
- Сохраните файл и закройте редактор (в Nano:
Ctrl+O
,Enter
, затемCtrl+X
). - (Если необходимо) Отключите конфигурацию по умолчанию (если она существует и мешает):
sudo rm -f /etc/nginx/sites-enabled/default
- Активируйте конфигурацию Shaarli, создав символическую ссылку (если она еще не существует):
sudo ln -sf /etc/nginx/sites-available/shaarli /etc/nginx/sites-enabled/
- Проверьте конфигурацию Nginx на наличие синтаксических ошибок:
sudo nginx -t
- Если проверка прошла успешно, вы увидите
syntax is ok
иtest is successful
. - Если есть ошибки, внимательно проверьте файл
/etc/nginx/sites-available/shaarli
.
- Если проверка прошла успешно, вы увидите
- Перезагрузите Nginx, чтобы применить изменения:
sudo systemctl reload nginx
Часть 3: Получение SSL-сертификата с помощью Let's Encrypt
Теперь, когда DNS настроен и Nginx готов, можно получить SSL-сертификат.
- Убедитесь, что Certbot и плагин для Nginx установлены на VPS2:
sudo apt update sudo apt install certbot python3-certbot-nginx -y
- Запустите Certbot для получения сертификата и автоматической настройки Nginx:
sudo certbot --nginx -d shaarli.icelake.ru
- Следуйте инструкциям в терминале:
- Возможно, потребуется ввести email для уведомлений от Let's Encrypt.
- Примите условия использования (Terms of Service).
- Выберите, хотите ли вы получать письма от EFF (можно отказаться).
- Certbot автоматически изменит конфигурацию Nginx (
/etc/nginx/sites-available/shaarli
), добавив блокиserver
для HTTPS и перенаправление с HTTP на HTTPS.
- Проверьте, что Nginx был перезагружен Certbot'ом. Если нет, перезагрузите его вручную:
sudo systemctl reload nginx
Часть 4: Проверка и завершение
- Дождитесь полного распространения DNS-записи (если это необходимо). Обычно это происходит быстро, но может занять до часа.
- Откройте веб-браузер и перейдите по адресу:
http://shaarli.icelake.ru
.- Вы должны быть автоматически перенаправлены на
https://shaarli.icelake.ru
. - В адресной строке браузера должно отображаться, что соединение защищено (обычно зелёный замок).
- Вы должны быть автоматически перенаправлены на
- Проверьте, что отображается страница Shaarli.
Часть 5: Автоматическое обновление сертификата
SSL-сертификаты Let's Encrypt действительны 90 дней. Certbot автоматически создает таймер для их обновления.
- Проверьте наличие таймера обновления:
Вы должны увидеть строку, похожую наsystemctl list-timers | grep certbot
certbot.timer
, что означает, что автоматическое обновление настроено.
Заключение
Теперь ваш Shaarli, установленный на VPS2, доступен по безопасному адресу https://shaarli.icelake.ru
. Let's Encrypt обеспечивает бесплатный SSL-сертификат, а Certbot автоматически настраивает Nginx и обновляет сертификат по истечении срока его действия. Это значительно повышает безопасность и удобство использования вашего сервиса закладок.
© 2025 BigGratz.ru