Cloudreve – свободно распространяемая кроссплатформенная система для создания облачного хранилища, обладающая удобным веб-интерфейсом, поддержкой мультипользовательского режима, возможностью предпросмотра медиафайлов и многого другого.
По умолчанию Cloudreve запускается на локальном порту, например 5212, и не использует шифрование. Это значит, что все данные, включая логины, пароли и передаваемые файлы могут быть перехвачены, поскольку доступ к сервису осуществляется с использованием незащищённого протокола.
В качестве примера решения данной проблемы давайте рассмотрим, как производится настройка HTTPS-доступа к Cloudreve через Nginx и Let’s Encrypt на виртуальном сервере, работающем под управлением Ubuntu 24.04. Мы настроим обратный прокси на веб-сервере Nginx, который будет принимать HTTPS-запросы от клиентов, расшифровывать их с помощью сертификата Let’s Encrypt и безопасно проксировать к Cloudreve.
Схема работы данной конструкции выглядит следующим образом:
- браузер со стороны клиента шифрует данные, отправляя HTTPS-запрос;
- веб-сервер Nginx принимает зашифрованный трафик и расшифровывает его, используя SSL-сертификат;
- после чего Nginx передаёт уже расшифрованный HTTP-трафик локальному Cloudreve.
Как настроить HTTPS-доступ к Cloudreve через Nginx
Для того, чтобы веб-интерфейс Cloudreve был доступен по HTTPS, необходимым условием является наличие доменного имени, которое будет направлено на IP-адрес виртуального сервера при помощи A-записи. В нашем примере мы будем использовать имя домена your-site-name.ru
.
Во-первых, необходимо установить Nginx, если в вашей системе он ещё не установлен. Проверить наличие Nginx среди проинсталлированных приложений можно, например, командой, которая выводит его версию:
$ nginx -v
Если вывод команды не содержит номера версии, как на скриншоте ниже:

То установите Nginx при помощи инструкции:
$ sudo apt install nginx
По окончании инсталляции создайте конфигурационный файл для вашего сайта:
$ sudo nano /etc/nginx/sites-available/cloudreve
В нашем примере мы использовали следующее содержимое для файла конфигурации:
server {
listen 80;
server_name your-site-name.ru;
location / {
proxy_pass http://127.0.0.1:5212;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
Затем создайте символическую ссылку на конфигурационный файл Cloudreve, чтобы Nginx начал его использовать:
$ sudo ln -s /etc/nginx/sites-available/cloudreve /etc/nginx/sites-enabled/
После чего проверьте корректность синтаксиса Nginx:
$ sudo nginx -t
В идеальном случае вывод команды должен выглядеть, как на скриншоте ниже.

Если проверка синтаксиса завершилась успешно, перезапустите службу Nginx:
$ sudo systemctl restart nginx
Чтобы убедиться в том, что веб-интерфейс Cloudreve теперь доступен по своему доменному имени, добавьте в брандмауэр правило, разрешающее доступ к сайту через протокол HTTP. Доступность сервера по HTTP также будет важна при последующей установке SSL-сертификата для сайта.
Чтобы открыть доступ по HTTP, выполните следующую команду:
$ sudo ufw allow http
После чего откройте браузер и перейдите на веб-интерфейс Cloudreve, используя его доменное имя.

Установка SSL-сертификата
Чтобы настроить HTTPS-доступ к Cloudreve и сделать подключение к нему безопасным, потребуется Certbot – программа, которая позволяет в автоматическом режиме получить бесплатный SSL-сертификат от Let’s Encrypt и произвести настройку веб-сервера для использования данного сертификата. Кроме того, Certbot без участия администратора обновляет установленный сертификат перед истечением его срока действия.
Для использования Certbot в Nginx необходимо установить в систему непосредственно сам Certbot, а также плагин, который интегрирует его с Nginx – python3-certbot-nginx
:
$ sudo apt install certbot python3-certbot-nginx
По окончании установки запустите команду, которая инициирует процесс получения SSL-сертификата и установки его в Nginx:
$ sudo certbot --nginx -d your-site-name.ru
Обратите внимание, что опция --nginx
активирует применение плагина для работы с веб-сервером Nginx. Опция -d
, в свою очередь, указывает на доменное имя, для которого нужно получить SSL-сертификат. В данном случае используйте доменное имя своего сайта вместо your-site-name.ru
.
В ходе своей работы Certbot сначала попросит указать вас адрес электронной почты, который будет использоваться для отправки важных сообщений от Let’s Encrypt, относящихся к устанавливаемому сертификату. Затем утилита попросит вас согласиться с условиями предоставления услуг для регистрации на сервере ACME. После чего вам нужно будет дать своё согласие на получение от некоммерческой организации Electronic Frontier Foundation, являющейся партнёром-основателем проекта Let’s Encrypt, писем о новостях, кампаниях и способах поддержки цифровой свободы.
В конце концов Certbot зарегистрирует для вас аккаунт на сервере ACME, запросит сертификат, и в случае положительного ответа от Let’s Encrypt установит его для шифрования трафика сайта, указанного в команде. Кроме всего прочего, Certbot внесёт изменения в конфигурационный файл веб-сервера, что позволит осуществлять доступ к веб-интерфейсу Cloudreve с использованием протокола HTTPS, а также перенаправлять менее безопасный HTTP-трафик на HTTPS.
Дополнительно Certbot настроит в планировщик задачу для автоматического обновления этого сертификата в фоновом режиме. Как правило, бесплатные SSL-сертификаты от Let’s Encrypt истекают через один месяц.
Проверка доступности сайта Cloudreve через HTTPS
Теперь останется лишь разрешить в брандмауэре UFW доступ к вашей виртуальной машине по протоколу HTTPS. Для этого создайте в UFW соответствующее правило:
$ sudo ufw allow https
В итоге веб-интерфейс Cloudreve будет доступен по HTTPS, что можно проверить, перейдя в браузере по ссылке https://your-site-name.ru
, в которой, естественно, нужно изменить доменное имя your-site-name.ru
на используемое для доступа к вашему сайту Cloudreve.

После настройки HTTPS-доступа через Nginx необходимо закрыть прямой доступ к веб-интерфейсу Cloudreve, который предоставляет небезопасное HTTP-соединение в обход защищённого прокси-сервера с использованием ранее открытого для этого TCP-порта 5212. Оставляя открытой возможность такого подключения, вы подвергаете свой виртуальный сервер риску перехвата данных в обход настроек безопасности. Закрыв же порт 5212, вы гарантируете, что все соединения будут осуществляться через Nginx с использованием действующего SSL-сертификата.
Для закрытия порта добавьте правило в брандмауэр UFW, запрещающее данное подключение:
$ sudo ufw deny 5212/tcp