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…