0
0
mirror of https://gitea.com/gitea/docs.git synced 2025-05-30 19:40:45 +00:00
Files
appleboy dbfa0ba454 docs: add zh-tw folder (#195)
Signed-off-by: appleboy <appleboy.tw@gmail.com>
Reviewed-on: https://gitea.com/gitea/docs/pulls/195
Reviewed-by: Lunny Xiao <xiaolunwen@gmail.com>
Co-authored-by: appleboy <appleboy.tw@gmail.com>
Co-committed-by: appleboy <appleboy.tw@gmail.com>
2025-04-04 23:28:16 +00:00

94 lines
4.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
date: "2018-06-02T11:00:00+02:00"
slug: "https-setup"
sidebar_position: 12
aliases:
- /zh-tw/https-setup
---
# HTTPS 設置
## 使用內置服務器
在啟用 HTTPS 之前,請確保您擁有有效的 SSL/TLS 證書。
您可以使用自生成的證書進行評估和測試。請運行 `gitea cert --host [HOST]` 生成自簽名證書。
如果您在服務器上使用 Apache 或 nginx建議查看 [反向代理指南](./reverse-proxies.md)。
要使用 Gitea 的內置 HTTPS 支持,您必須更改 `app.ini` 文件:
```ini
[server]
PROTOCOL = https
ROOT_URL = https://git.example.com:3000/
HTTP_PORT = 3000
CERT_FILE = cert.pem
KEY_FILE = key.pem
```
請注意,如果您的證書是由第三方證書機構簽署的(即不是自簽名的),則 cert.pem 應包含證書鏈。服務器證書必須是 cert.pem 中的第一個條目,後面依次是中間證書(如果有)。根證書不必包含在內,因為連接的客戶端必須已經擁有它以建立信任關係。
要了解更多有關配置值的信息,請查看 [配置備忘單](./config-cheat-sheet.md#server-server)。
對於 `CERT_FILE``KEY_FILE` 字段,文件路徑在相對路徑時相對於 `GITEA_CUSTOM` 環境變量。它也可以是絕對路徑。
### 設置 HTTP 重定向
Gitea 服務器只能監聽一個端口;要將 HTTP 請求重定向到 HTTPS 端口,您需要啟用 HTTP 重定向服務:
```ini
[server]
REDIRECT_OTHER_PORT = true
; 重定向服務應監聽的端口
PORT_TO_REDIRECT = 3080
```
如果您使用 Docker請確保在 `docker-compose.yml` 文件中配置了此端口。
## 使用 ACME默認Let's Encrypt
[ACME](https://tools.ietf.org/html/rfc8555) 是一個證書機構標準協議,允許您自動請求和更新 SSL/TLS 證書。[Let's Encrypt](https://letsencrypt.org/) 是一個使用此標準的免費公開信任的證書機構服務器。僅實現了 `HTTP-01``TLS-ALPN-01` 挑戰。為了使 ACME 挑戰通過並驗證您的域所有權,必須由 gitea 實例服務外部流量到端口 `80``HTTP-01`)或端口 `443``TLS-ALPN-01`)。設置 [HTTP 重定向](#setting-up-http-redirection) 和端口轉發可能需要正確路由外部流量。否則,正常流量到端口 `80` 將自動重定向到 HTTPS。**您必須同意** ACME 提供商的服務條款(默認為 Let's Encrypt 的 [服務條款](https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf))。
使用默認 Let's Encrypt 的最小設置:
```ini
[server]
PROTOCOL=https
DOMAIN=git.example.com
ENABLE_ACME=true
ACME_ACCEPTTOS=true
ACME_DIRECTORY=https
;; 電子郵件可以在此處省略,並在首次運行時手動提供,之後將被緩存
ACME_EMAIL=email@example.com
```
使用 [smallstep CA](https://github.com/smallstep/certificates) 的最小設置,請參閱 [他們的教程](https://smallstep.com/docs/tutorials/acme-challenge) 以獲取更多信息。
```ini
[server]
PROTOCOL=https
DOMAIN=git.example.com
ENABLE_ACME=true
ACME_ACCEPTTOS=true
ACME_URL=https://ca.example.com/acme/acme/directory
;; 如果使用系統的信任,則可以省略
;ACME_CA_ROOT=/path/to/root_ca.crt
ACME_DIRECTORY=https
ACME_EMAIL=email@example.com
```
要了解更多有關配置值的信息,請查看 [配置備忘單](./config-cheat-sheet.md#server-server)。
## 使用反向代理
按照 [反向代理指南](../administration/reverse-proxies.md) 設置您的反向代理。
之後,按照以下指南之一啟用 HTTPS
- [nginx](https://nginx.org/en/docs/http/configuring_https_servers.html)
- [apache2/httpd](https://httpd.apache.org/docs/2.4/ssl/ssl_howto.html)
- [caddy](https://caddyserver.com/docs/tls)
:::note
僅在代理級別啟用 HTTPS 被稱為 [TLS 終止代理](https://en.wikipedia.org/wiki/TLS_termination_proxy)。代理服務器接受傳入的 TLS 連接,解密內容,並將現在未加密的內容傳遞給 Gitea。只要代理和 Gitea 實例位於同一台機器上,或者位於私有網絡內的不同機器上(代理暴露於外部網絡),這通常是可以的。如果您的 Gitea 實例與代理之間隔著公共網絡,或者您希望完全端到端加密,您也可以 [使用內置服務器直接在 Gitea 中啟用 HTTPS 支持](#using-the-built-in-server) 並通過 HTTPS 轉發連接。
:::