gogs配置https

yyy123456發表於2022-01-14

gogs配置https

過程,給gogs設定https,當然前提有自己的域名,自己的證照。
並且本文解決了
error: RPC failed; HTTP 413 curl 22 The requested URL returned error: 413
這個錯誤。

第一步,安裝http的gogs

到官網下載,解壓,然後其實無需安裝,直接就作為程式跑。

最開始,執行 ./gogs web
然後開啟防火牆3000,開啟瀏覽器 ip:3000/
進行一系列配置。填ip就行。

最後,為方便使用,做個服務。

安裝 systemctl的服務,我的伺服器是centos 8
vi /usr/lib/systemd/system/gogs.service
我這裡示範的是錯誤的用法,正確應該自己建立使用者。
這裡額外說一句,如果您打算採用ssh形式網址的git倉庫,請絕對不要使用root使用者,因為會遇到一些問題,gogs會自己修改認證檔案。
如果像我這樣用 http 或 https 域名的倉庫,就關係不大。

[Unit]
Description=Gogs
After=syslog.target
After=network.target
# After=mariadb.service mysqld.service postgresql.service memcached.service redis.service

[Service]
# Modify these two values and uncomment them if you have
# repos with lots of files and get an HTTP error 500 because
# of that
###
#LimitMEMLOCK=infinity
#LimitNOFILE=65535
Type=simple
User=root
Group=root
WorkingDirectory=/root/temp/gogs
ExecStart=/root/temp/gogs/gogs web
Restart=always
Environment=USER=root HOME=/root

ProtectSystem=full
PrivateDevices=yes
PrivateTmp=yes
NoNewPrivileges=true

[Install]
WantedBy=multi-user.target

第2步: nginx配置

首先在第一步確保gogs能正常執行,這時我們才修改https,做的工作比較多。
現在要先去域名配置,解析。

server {
        listen 80;
        # 血淚教訓,一定要加
        client_max_body_size 100m;
        server_name  gog.xxx.com;
        location / {
                rewrite   ^ https://gog.xxx.com$request_uri? permanent;
    }
}

server {
        listen       443 ssl;
        # 血淚教訓,一定要加
        client_max_body_size 100m;
        server_name gog.xxx.com;
        ssl_certificate /etc/nginx/pem/xxx.com.pem;
        ssl_certificate_key /etc/nginx/pem/xxx.com.key;

        location / {
            proxy_pass http://localhost:3000;
        }
}

第3步 gogs 的配置

修改 程式目錄/custom/conf/app.ini
DOMAIN 顯示在 ssh倉庫的地址。
EXTERNAL_URL顯示在 http倉庫的地址。

[server]
DOMAIN           = gog.xxx.com
HTTP_PORT        = 3000
EXTERNAL_URL     = https://gog.xxx.com/
DISABLE_SSH      = false
SSH_PORT         = 22
START_SSH_SERVER = false
OFFLINE_MODE     = false

第4步:關閉防火牆

現在立刻完全關閉3000,
然後下載地址變成這樣:

git clone https://gog.xxx.com/myuser/myproject.git 

這樣就安全了!

第5步,總結:

1、git倉庫地址必須改變成使用域名,且使用https
2、在瀏覽器登入 gogs 的管理控制檯:使用 gog.xxx.com,就行。
3、解決了 error: RPC failed; HTTP 413 curl 22 The requested URL returned error: 413 這個錯誤。透過nginx的配置解決的。

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章