我正在尝试设置gitea来使用https,并使用从letsencrypt获得的证书,该证书以普通用户的身份运行该服务。
我已经让它在80端口上与普通用户git
一起工作,并使用iptable将端口80重定向到端口3000。
另外,我已经让它与端口3000上的https一起工作,将其重定向到端口3080。
但我不知道如何配置它(可能与iptables一起),以便请求端口80重定向到批准端口(3000? 3080?)。
我使用下面的iptables命令将端口80重定向到端口3000:
# 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
这是我在3000端口上的HTTP配置,将其重定向到端口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
,就会得到一个带有Error code: SSL_ERROR_RX_RECORD_TOO_LONG
的Secure Connection Failed
。
我试图使用iptables将端口80重定向到端口3080,但它没有工作。
您能帮我设置一下吗?这样我就可以在端口80中以正常用户的身份运行该服务,以便人们可以在https://example.com
上访问它。(可能预先使用iptables作为根用户来重定向某些端口),谢谢
发布于 2021-02-25 18:41:51
在gitea中包含了letsencrypt。要使用docker设置gitea,让我们对您的服务器配置进行加密,如下所示:
....
[server]
APP_DATA_PATH = /data/gitea
DOMAIN = example.com
SSH_DOMAIN = example.com
HTTP_PORT = 443
ROOT_URL = http://example.com
PROTOCOL=https
ENABLE_LETSENCRYPT=true
LETSENCRYPT_ACCEPTTOS=true
LETSENCRYPT_DIRECTORY=https
LETSENCRYPT_EMAIL=info@foo.com
.....
而您的docker-compose.yaml端口配置如下所示:
server:
image: gitea/gitea:1.13.2
container_name: gitea
ports:
- "443:443"
- "222:22"
....
https://stackoverflow.com/questions/58183139
复制相似问题