Подробная инструкция по настройке защищенного подключения для 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 certbotcertbot.timer, что означает, что автоматическое обновление настроено.
Заключение
Теперь ваш Shaarli, установленный на VPS2, доступен по безопасному адресу https://shaarli.icelake.ru. Let's Encrypt обеспечивает бесплатный SSL-сертификат, а Certbot автоматически настраивает Nginx и обновляет сертификат по истечении срока его действия. Это значительно повышает безопасность и удобство использования вашего сервиса закладок.
© 2025 BigGratz.ru