gitea используя обычного пользователя и https - PullRequest
0 голосов
/ 01 октября 2019

Я пытаюсь настроить gitea для использования https с сертификатом, который я получил от letsencrypt, запустив службу в качестве обычного пользователя .

Я уже установил его работу с http на порту 80 собычный пользователь git и перенаправление порта 80 на порт 3000 с помощью iptables.

Также у меня уже есть работа с https на порт 3000 с перенаправлением на порт 3080.

Но я не могу понятьКак настроить его (возможно, вместе с iptables), чтобы запросы на порт 80 перенаправлялись на соответствующий порт (3000? 3080?).

Я перенаправил порт 80 на порт 3000, используя эту команду iptables в качестве пользователя root:

# iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3000

И это важная часть моей конфигурации для HTTP

RUN_USER         = git

LOCAL_ROOT_URL   = http://localhost:3000/
DOMAIN           = example
HTTP_PORT        = 80
ROOT_URL         = http://example.com

Это моя конфигурация для HTTP на порту 3000 с перенаправлением на порт 3080

RUN_USER            = git

PROTOCOL            = https
LOCAL_ROOT_URL      = https://localhost:3000/
DOMAIN              = example.com
HTTP_PORT           = 3000
REDIRECT_OTHER_PORT = true
PORT_TO_REDIRECT    = 3080
ROOT_URL            = https://example.com
CERT_FILE           = /etc/letsencrypt/live/example.com/fullchain.pem
KEY_FILE            = /etc/letsencrypt/live/example.com/privkey.pem

С этой конфигурацией я могу посетить https://example.com:3000, и она работает нормально, но если я посещаю https://example.com:3080, я получаю Secure Connection Failed с Error code: SSL_ERROR_RX_RECORD_TOO_LONG.

Я попытался перенаправить порт80 на порт 3080 с использованием iptables, но этоне работал.

Можете ли вы помочь мне настроить его, чтобы я мог запустить службу как обычный пользователь в порту 80, чтобы люди могли посетить его в https://example.com? (возможно, предварительно используя iptables как root для перенаправления некоторых портов) Заранее спасибо

Ответы [ 2 ]

1 голос
/ 01 октября 2019

Порт для HTTPS - 443. Большинство людей решило бы это, используя обратный прокси-сервер, а не iptables.

Gitea может обрабатывать сам letsencrypt. Вот как:

[server]
PROTOCOL=https
DOMAIN=git.example.com
ENABLE_LETSENCRYPT=true
LETSENCRYPT_ACCEPTTOS=true
LETSENCRYPT_DIRECTORY=https
LETSENCRYPT_EMAIL=email@example.com

Взято из: https://docs.gitea.io/en-us/https-setup/

0 голосов
/ 01 октября 2019

Если кому-то еще это понадобится, вот последний файл конфигурации, он перенаправляет http-запросы на https.

Я использовал # setcap cap_net_bind_service=+ep /path/to/binary/gitea, как предложил ptman.

RUN_USER            = git

[server]
PROTOCOL            = https
DOMAIN              = example.com
HTTP_PORT           = 443
REDIRECT_OTHER_PORT = true
CERT_FILE           = /etc/letsencrypt/live/example.com/fullchain.pem
KEY_FILE            = /etc/letsencrypt/live/example.com/privkey.pem
SSH_DOMAIN          = example.com
DISABLE_SSH         = false
SSH_PORT            = 22
OFFLINE_MODE        = false
...