Как настроить HTTPS-доступ к Gitea

По умолчанию 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

Вывод команды, содержащий текущее состояние службы, не должен содержать сообщений о каких-либо ошибках.

Вывод состояния службы Caddy - Как настроить HTTPS-доступ к Gitea

Как настроить 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

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

Вам также может понравиться