По умолчанию Gitea работает по протоколу HTTP и не управляет сертификатами Let’s Encrypt. Если необходимо организовать доступ к веб-интерфейсу Gitea по HTTPS с автоматическим обновлением сертификатов, то самым безопасным и простым способом является установка перед его веб-страницей обратного прокси, например, Caddy. Обратный прокси обрабатывает входящие HTTPS-запросы, зашифровывает трафик, а потом передаёт трафик на Gitea по внутреннему HTTP. В настоящей статье разберём, как настроить HTTPS-доступ к веб-интерфейсу Gitea с использованием обратного прокси Caddy на VPS, работающем под управлением Ubuntu 24.04.
Установка Caddy
Caddy − это одновременно и полноценный веб-сервер, и реверс-прокси, и менеджер HTTPS. В этой роли он может получать и обновлять сертификаты от Let’s Encrypt. При этом Caddy не использует планировщик задач и программное обеспечение, такое как, например, Certbot.
Для применения Caddy в качестве обратного прокси необходимо произвести его инсталляцию в систему подобно тому, как это делается и при настройке веб-сервера Caddy. Для этого в Ubuntu, во-первых, добавьте 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:
$ 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
В выводе команды не должно присутствовать каких-либо сообщений об ошибках в работе службы.

Как настроить HTTPS-доступ к Gitea
Во-первых, для настройки HTTPS-доступа необходимо внести изменения в основной конфигурационный файл Caddy:
$ sudo nano /etc/caddy/Caddyfile
Если Caddy на вашем сервере будет использоваться только как обратный прокси для Gitea, то достаточно привести содержимое данного конфигурационного файла к следующему виду:
your-site-name.ru {
reverse_proxy localhost:3000
}
В данном случае:
your-site-name.ru
− имя домена, для которого настраивается реверс-прокси. По этому имени будет доступен веб-интерфейс Gitea. При этом A-запись этого домена должна быть направлена на IP-адрес вашего виртуального сервера.reverse_proxy localhost:3000
− директива, которая означает, что все запросы, которые приходят наyour-site-name.ru
, Caddy будет проксировать на Gitea, работающий на порту 3000.
Закройте файл с сохранением изменений и перезапустите службу Caddy:
$ sudo systemctl restart caddy
Далее необходимо внести изменения настройки Gitea. Для этого откройте файл /etc/gitea/app.ini
:
$ sudo nano /etc/gitea/app.ini
В секции [server]
измените следующие параметры:
HTTP_ADDR = 127.0.0.1
HTTP_PORT = 3000
DOMAIN = your-site-name.ru
ROOT_URL = https://your-site-name.ru/
PROTOCOL = http
После чего сохраните изменения, закройте файл и перезапустите службу Gitea:
$ sudo systemctl restart gitea
Теперь веб-интерфейс Gitea работает с использованием протокола HTTPS. При этом, чтобы получить возможность подключения к веб-странице, необходимо открыть доступ к серверу в брандмауэре UFW. Для этого добавьте в брандмауэр разрешающее правило для профиля https
. А также закройте доступ к порту 3000, который использовался для прямого подключения к веб-интерфейсу Gitea. Чтобы это сделать, удалите разрешающее правило для 3000-го порта.
$ sudo ufw allow https
$ sudo ufw delete allow 3000
После чего откройте браузер и проверьте возможность подключения к https://your-site-name.ru
, где замените your-site-name.ru
на доменное имя вашего сайта.
