Nach der Installation von Gitea läuft dieses standardmäßig über unverschlüsseltes HTTP. Um dies zu ändern muss die app.ini welche sich im Verzeichnis /home/git/gitea/custom/conf/ befindet bearbeitet werden:
nano /home/git/gitea/custom/conf/app.ini
In der Sektion server welche für gewöhnlich wie folgt aussieht:
[server] SSH_DOMAIN = localhost DOMAIN = localhost HTTP_PORT = 3000 ROOT_URL = http://example.org:3000/ DISABLE_SSH = false SSH_PORT = 22 LFS_START_SERVER = true LFS_CONTENT_PATH = /home/git/gitea/data/lfs LFS_JWT_SECRET = plgd0f1J4RlmWFnk9K4oHeV6Wey_vI55x7uC81Rp5Mc OFFLINE_MODE = false
müssen einige Änderungen vorgenommen werden. Die Schlüssel PROTOCOL, CERT_FILE und KEY_FILE müssen hinzugefügt und die ROOT_URL angepasst werden. Danach sollte die server-Sektion in etwa so aussehen:
[server] SSH_DOMAIN = localhost DOMAIN = localhost HTTP_PORT = 3000 PROTOCOL = https CERT_FILE = custom/https/cert.pem KEY_FILE = custom/https/key.pem ROOT_URL = https://example.org:3000/ DISABLE_SSH = false SSH_PORT = 22 LFS_START_SERVER = true LFS_CONTENT_PATH = /home/git/gitea/data/lfs LFS_JWT_SECRET = plgd0f1J4RlmWFnk9K4oHeV6Wey_vI55x7uC81Rp5Mc OFFLINE_MODE = false
Nachdem die Konfiguration gespeichert wurde muss das passende Zertifikat erzeugt werden:
cd /home/git/gitea/custom/ mkdir https cd https ./gitea cert -ca=true -duration=8760h0m0s -host=example.org
Alternativ und in den meisten Fall sinnvoller ist es allerdings an dieser Stelle Zertifikate von Let’s Encrypt einzubinden. Dazu müssen die Zertifikate für die Domain im ersten Schritt erzeugt werden:
letsencrypt certonly
Anschließend muss die app.ini angepasst werden:
nano /home/git/gitea/custom/conf/app.ini
Dort werden die Werte für CERT_FILE und KEY_FILE so konfiguriert das sie auf die Let’s Encrypt-Zertifikate zeigen:
CERT_FILE = /etc/letsencrypt/live/example.org/fullchain.pem KEY_FILE = /etc/letsencrypt/live/example.org/privkey.pem
Damit ist Gitea nach einem Neustart des Service per HTTPS und damit verschlüsselt erreichbar.
Hallo, leider ist Gitea laut Status nicht in der Lage meine Cert.pem und fullchain.pm zu öffnen *access denied wird ausgegeben.
was kann man da machen?
Ich meine natürlich die privkey und fullchain. sry
Da scheint Gitea keine Berechtigung zu haben auf die Zertifikate zuzugreifen. Wenn es sich um Let’s Encrypt-Zertifikate handelt, hilft es die Zugehörigkeit zur Gruppe ssl-cert zu setzen:
Anschließend muss der Gitea-Nutzer ebenfalls dieser Gruppe zugewiesen werden:
Liegen die Zertifikate irgendwo anders, bzw. sind es keine Let’s Encrypt-Zertifikate müssen die entsprechenden Berechtigungen (chmod, chown) entsprechend gesetzt werden, damit der Gitea-Nutzer darauf zugreifen kann.