Веб-интерфейс Stirling-PDF изначально работает только по обычному HTTP, и если вы подключаетесь без шифрования, то весь трафик между вами и сервером идёт в открытом виде. Это относится и к файлам, которые вы загружаете для конвертации, и к результатам работы сервиса, которые вы получаете. В теории эти данные может перехватить любой, кто имеет доступ к сети, находящейся между вашим компьютером и VPS, на котором работает Stirling-PDF. Эту проблему решает более безопасный протокол – HTTPS. Он шифрует соединение и делает невозможным как подслушивание трафика, так и подмену данных.
Кроме того, браузеры всё чаще блокируют работу веб-приложений, не использующих HTTPS. Особенно, если такие сервисы загружают файлы и используют какие-либо функции, связанные с доступом к буферу обмена. Если Stirling-PDF работает на VPS, то, не применяя защиту, вы подвергаете риску безопасность передаваемых данных, а в некоторых случаях и функционал сервиса.
В статье разберём, как настроить защиту сервера с Stirling-PDF при помощи протокола HTTPS на примере виртуального выделенного сервера под управлением Ubuntu 24.04.
Предварительные условия
Во-первых, все работы на сервере мы проводим под пользователем, обладающим полномочиями администратора, но не являющегося учётной записью root
. Доступ для подключения пользователя root
к системе ограничен консолью сервера.
Также в системе установлен и активизирован брандмауэр UFW. Доступ к виртуальной машине в UFW ограничен только необходимыми для работы портами. В частности, это порт 22 для подключения по SSH и порт 8080, через который по умолчанию работает веб-интерфейс Stirling-PDF.
Чтобы обеспечить защиту приложения при помощи HTTPS, необходимо организовать доступ к серверу с использованием доменного имени. Такая настройка производится с помощью A-записи, которая позволяет связать имя домена с IP-адресом виртуального сервера. Привязку A-записи к IP-адресу можно осуществить либо на сайте регистратора вашего домена, либо во вкладке Домены
в личном кабинете RUVDS.

Как настроить защиту Stirling-PDF при помощи HTTPS
Одним из решений, которое позволяет настроить защиту сервера при помощи HTTPS и которое мы разберём в нашем примере, является настройка доступа к веб-интерфейсу через обратный прокси Caddy.
Веб-сервер и обратный прокси Caddy как раз отличается встроенной поддержкой конфигурации HTTPS. Для получения и установки TLS-сертификатов от Let’s Encrypt реверс-прокси Caddy не требует использования какого-либо дополнительного программного обеспечения, такого как, например, Certbot. Caddy самостоятельно выполняет выпуск, установку и обновление сертификатов.
Как и любой другой веб-сервер, Caddy получает сертификат от Let’s Encrypt по методу HTTP-01. При этой процедуре удостоверяющий центр обязан убедиться, что домен действительно указывает на сервер, предназначенный для установки или обновления сертификата. Для этого Let’s Encrypt делает HTTP-запрос на имя целевого домена по порту 80, поскольку этот порт – стандартный для протокола HTTP. На данном порту Caddy автоматически поднимает обработчик и отвечает правильным токеном на запрос Let’s Encrypt. Только после успешной проверки удостоверяющий центр сможет выдать сертификат. Таким образом, на вашем сервере должен быть открыт доступ через порт 80. Чтобы это сделать, добавьте разрешающее правило для порта 80 в брандмауэр UFW:
$ sudo ufw allow 80
Установка Caddy
На первом этапе загрузите и установите GPG-ключ для репозитория Caddy. Это нужно для того, чтобы система могла проверять подлинность пакетов при их установке:
$ curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
Затем добавьте в систему репозиторий Caddy, чтобы можно было установить его через пакетный менеджер apt
:
$ curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
После чего обновите списки пакетов:
$ sudo apt update
Запустите инсталляцию Caddy:
$ sudo apt install caddy
Во время установки в системе создаётся служба для работы Caddy, которая автоматически запускается и устанавливается в автозагрузку. Чтобы убедиться, что инсталляция прошла успешно и служба функционирует без ошибок, выведите на экран её текущее состояние:
$ systemctl status caddy
Вывод команды не должен содержать сообщений о каких-либо ошибках:

Настройка Caddy
Теперь необходимо внести изменения в конфигурацию Caddy:
$ sudo nano /etc/caddy/Caddyfile
В случае, если вы планируете использовать Caddy исключительно в качестве обратного прокси для Stirling-PDF, то достаточно того, чтобы Caddy-файл содержал единственную настройку:
your-site-name.ru {
reverse_proxy localhost:8080
}
В данном случае:
your-site-name.ru
– доменное имя сайта, для которого производится настройка доступа по HTTPS;8080
– порт, по которому работает веб-интерфейс Stirling-PDF.
После внесения изменений сохраните и закройте файл, затем перезапустите службу Caddy:
$ sudo systemctl restart caddy
Поскольку стандартным портом для протокола HTTPS является порт 443, необходимо открыть доступ к серверу с использованием данного порта. Для чего добавьте в брандмауэр UFW соответствующее разрешающее правило:
$ sudo ufw allow 443
Затем откройте браузер и перейдите на https://your-site-name.ru
, где вместо your-site-name.ru
укажите доменное имя, привязанное к вашему виртуальному серверу.

Таким образом, веб-интерфейс Stirling-PDF теперь открывается через защищённое соединение. В свою очередь, прокси-сервер принимает зашифрованный трафик, расшифровывает его и передаёт уже обычным HTTP-запросом на порт, через который работает само приложение. В случае с Stirling-PDF это порт 8080. Для подключения извне данный порт больше не будет использоваться. Следовательно, возможность получения доступа к серверу через него можно удалить из брандмауэра:
$ sudo ufw delete allow 8080
Настройка доступа по паролю (опционально)
Stirling-PDF обрабатывает файлы, которые вы загружаете, и эти файлы проходят через ваш сервер. Поскольку доступ к нему открыт всем, любой посторонний сможет загружать и конвертировать свои файлы, нагружая сервер и расходуя его ресурс. Кроме того, потенциальный злоумышленник может попытаться использовать Stirling-PDF для вредоносных целей. К примеру, массовое конвертирования может быть применено как часть атаки. Даже если сами по себе загруженные файлы нигде не сохраняются, неавторизованный доступ создаёт определённые риски – от случайного спама до намеренного злоупотребления сервисом. Поэтому лёгкое и быстрое решение, которое практически не создаёт нагрузку на VPS, но значительно снижает вероятность использования приложения – это установка парольной защиты через прокси.
При работе с паролями Caddy использует криптографический алгоритм хэширования Bcrypt, специально предназначенный для их безопасного хранения. Для генерации хэша пароля в Caddy запустите команду:
$ caddy hash-password
В ответ на приглашение дважды введите пароль, после чего команда сгенерирует строку вида:
$2a$1................wWdf5u
Затем откройте конфигурационный файл Caddy:
$ sudo nano /etc/caddy/Caddyfile
Приведите его к следующему виду:
your-site-name.ru {
reverse_proxy localhost:8080
route {
basic_auth * {
user-for-pdf $2a$1................wWdf5u
}
reverse_proxy 127.0.0.1:8080
}
}
В данном случае:
user-for-pdf
– имя пользователя, которое будет использоваться для подключения к веб-интерфейсу Stirling-PDF (естественно, можете использовать какое-либо своё);$2a$1................wWdf5u
– та самая строка, сгенерированная командойcaddy hash-password
.
Закройте файл с сохранением изменений и перезапустите конфигурацию Caddy:
$ sudo systemctl reload caddy
После чего перейдите в браузер и откройте страницу приложения Stirling-PDF.

При открытии страницы появится окно, в которое необходимо ввести имя пользователя, указанное в Caddy-файле, и пароль, который вы вводили при выполнении команды caddy hash-password
.