
По умолчанию Gitea использует протокол HTTP для доступа к своему веб-интерфейсу и не предоставляет встроенной поддержки для автоматической работы с SSL-сертификатами. Чтобы обеспечить безопасное HTTPS-подключение с автоматическим продлением сертификатов, рекомендуется воспользоваться внешним обратным прокси-сервером. Одним из наиболее удобных и надёжных решений в этом случае является Caddy, который автоматически управляет SSL-сертификатами. Такой прокси-сервер принимает входящие HTTPS-запросы, расшифровывает трафик и перенаправляет его на Gitea по локальному HTTP-протоколу. В статье рассмотрим, как настроить защищённый HTTPS-доступ к Gitea через Caddy на виртуальном сервере с установленной операционной системой Debian 12.
Как настроить Caddy
Кроме того, что Caddy − это прежде всего веб-сервер, его также можно настроить для выполнения функций обратного прокси и менеджера HTTPS, в качестве которого он может получить и в дальнейшем обновлять сертификат от Let’s Encrypt. В случае с Caddy, его взаимодействие с Let’s Encrypt производится напрямую, не используя какое-либо дополнительное ПО, например, Certbot.
Чтобы установить Caddy на Ubuntu 24.04, воспользуйтесь соответствующей статьёй нашего справочника. В ней данный процесс описан довольно подробно.
В результате инсталляции в систему будет добавлена служба caddy
, которая сразу запускается и устанавливается в автозагрузку. Проверить корректность её установки можно при помощи команды:
$ systemctl status caddy
Вывод команды, содержащий текущее состояние службы, не должен содержать сообщений о каких-либо ошибках.

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

Сообщение вида Подключение защищено
свидетельствует о работе веб-интерфейса Gitea по протоколу HTTPS.