SSL certificate on GOGS

Gogs is mijn GIT server en draait op een Raspberry 2B. Nu wil ik deze beveiligen met een SSL certificaat en dat kan gratis via Let’s Encrypt. Allereerst moet daarvoor ‘certbot’ op de RPi staan:

$ sudo apt install certbot -y

NAT Port 443

Ik zet de webserver gogs uit zodat Let’s Encrypt deze niet kan bereiken op poort 80. Als test gebruik ik de domainnaam ‘gogs.digitalinfo.nl‘ als URL voor het certificaat, dus zorg ervoor dat deze op de Gogs-server uitkomt, bijvoorbeeld via een NAT-poort (443) op het Internet-modem.

Wijzigingen in GOGS config

Met ‘sudo vi custom/conf/app.ini‘ zorgen we ervoor dat het [server] gedeelte er alsvolgt uit ziet:

[server]
PROTOCOL = https
HTTP_ADDR = 
HTTP_PORT = 443
CERT_FILE = cert.pem
KEY_FILE = key.pem
DOMAIN           = localhost
ROOT_URL         = https://localhost:3000/
DISABLE_SSH      = false
SSH_PORT         = 22
START_SSH_SERVER = false
OFFLINE_MODE     = false

Hierna kan Gogs weer gestart worden met: ‘sudo systemctl start gogs

Certificaat aanmaken

Vervolgens kunnen de volgende commando’s het certificaat aanmaken:

$ sudo certbot certonly --standalone --noninteractive --agree-tos --email noreply@digitalinfo.nl -d gogs.digitalinfo.nl
$ cd <GOGS_DIRECTORY>
$ ln -s /etc/letsencrypt/live/gogs.digitalinfo.nl/cert.pem cert.pem
$ ln -s /etc/letsencrypt/live/gogs.digitalinfo.nl/privkey.pem key.pem

Zorg ervoor dat de GOGS daemon gebruiker ook bij de letsencrypt bestanden kan!

That’s all folks! Ga nu met een browser naar https://gogs.digitalinfo.nl et voila…