首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用普通用户和https的gitea

使用普通用户和https的gitea
EN

Stack Overflow用户
提问于 2019-10-01 10:43:14
回答 3查看 4.4K关注 0票数 3

我正在尝试设置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配置的相关部分

代码语言:javascript
复制
RUN_USER         = git

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

这是我在3000端口上的HTTP配置,将其重定向到端口3080

代码语言:javascript
复制
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_LONGSecure Connection Failed

我试图使用iptables将端口80重定向到端口3080,但它没有工作。

您能帮我设置一下吗?这样我就可以在端口80中以正常用户的身份运行该服务,以便人们可以在https://example.com上访问它。(可能预先使用iptables作为根用户来重定向某些端口),谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-10-01 10:53:25

HTTPS的端口为443。大多数人会通过使用反向代理来解决这个问题,而不是使用iptables。

Gitea能处理好自己的加密。下面是操作步骤:

代码语言:javascript
复制
[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/

票数 1
EN

Stack Overflow用户

发布于 2019-10-01 12:04:11

如果其他人需要它--这里是最后的配置文件--它会将http请求重定向到https。

我使用了# setcap cap_net_bind_service=+ep /path/to/binary/gitea,就像ptman建议的那样。

代码语言:javascript
复制
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
票数 3
EN

Stack Overflow用户

发布于 2021-02-25 18:41:51

在gitea中包含了letsencrypt。要使用docker设置gitea,让我们对您的服务器配置进行加密,如下所示:

代码语言:javascript
复制
....
[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端口配置如下所示:

代码语言:javascript
复制
  server:
    image: gitea/gitea:1.13.2
    container_name: gitea
    ports:
      - "443:443"
      - "222:22"
....
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58183139

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档