HTTPS mit NGINX auf Ubuntu

1. Installieren des Webservers
Als erstes müssen wir unseren Webserver installieren. Dieser kann über auf Ubuntu/Debian über die Standardpaketquellen installiert werden. Für unsere Installation verwenden wir NGINX, einen sehr schnellen und ausgereiften Webserver.
sudo apt update && sudo apt dist-upgrade
sudo apt install nginx
Damit sollte unser Webserver fertig installiert sein und auch schon über den HTTP-Port :80 erreichbar sein.
2 Firewall einstellungen anpassen
Für den Fall, dass wir eine Firewall nutzen müssen wir ausnahmen für Nginx erstellen.
sudo ufw allow ssh # Erlaube SSH-Verbindungen (falls wir über SSH auf den Server zugreifen)
sudo ufw allow 'Nginx Full' # Erlaube alle Nginx Verbindungen zur außenwelt.
sudo ufw enable # Aktiviert die Firewall
Nun können wir den Status der Firewall mit sudo ufw status
überpürfen.
root@elbm:~# sudo ufw status
Status: active
To Action From
-- ------ ----
Nginx Full ALLOW Anywhere
22/tcp ALLOW Anywhere
Nginx Full (v6) ALLOW Anywhere (v6)
22/tcp (v6) ALLOW Anywhere (v6)
3a Certbot nutzen
Für denn Fall das unser Webserver nicht hinter einem Reverseproxy liegt und damit vom Internet erreichbar ist und eine Domain/Subdomain zugewiesen hat, können wir Certbot nutzen um uns echte HTTPS-Zertifikate zu generieren.
Certbot installieren
Da sich Certbot nicht im Standardrepository des APT Paketmanagers befindet müssen wir ein PPA hinzufügen.
sudo add-apt-repository ppa:certbot/certbot
sudo apt update
sudo apt install python-certbot-nginx
Certbot einrichten
Nun können wir mit Certbot automatisiert unsere Zertifikate austellen lassen und gleichzeitig auch unseren Webserver richtig dafür einrichten, cool oder?
sudo certbot --nginx -d hierDomainEinsetzen.at -d alternativ.subdomainHier.at
Certbot erneuert die Zertifikate auch von selbst, also können wir den Server jetzt getrost für immer so versauern lassen bis eine Sicherheitslücke unserem ungepatchen Webserver zum Verhängnis wird.