Apache HTTPD,  DevOps,  Ubuntu

HTTPS Setup für eine Flask Anwendung – Teil 2

Im ersten Teil habe ich die Einrichtung des Ubuntu Servers für meine kleine Webanwendung für den isländisch Kurs beschrieben. Im zweiten Teil möchte ich kurz auf die HTTPS Einrichtung eingehen.

Die DigitalOcean Anleitung für Ubuntu 18.04 funktioniert nicht unter Ubunt 20.x. Bitte darauf achren, die Anleitung für das eingesetzte Ubuntu Release (hier 20.04) zu verwenden, falls vorhanden. Das verwendete Repository ppa:certbot/certbot ist im Status DEPRECATED.

slommi@ubuntu-s-1vcpu-1gb-fra1-01:~$ sudo add-apt-repository ppa:certbot/certbot
The PPA has been DEPRECATED.

To get up to date instructions on how to get certbot for your systems, please see https://certbot.eff.org/docs/install.html.
More info: https://launchpad.net/~certbot/+archive/ubuntu/certbot
Press [ENTER] to continue or Ctrl-c to cancel adding it.

Daher wird der Certbot für die Let’s Encrypt Zertifikate

sudo apt install certbot python3-certbot-apache

apt install python3-certbot-apache

Ein Apache Virtual Host ist Vorausssetzung für die nächsten Schritte. Die Einrichung habe ich in Teil 1 beschrieben.

HTTPS Zugriff durch die Firewall

Der aktuelle Status der Firewall wird mit ufw abgefragt:

sudo ufw status

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere                  
Apache                     ALLOW       Anywhere                  
OpenSSH (v6)               ALLOW       Anywhere (v6)             
Apache (v6)                ALLOW       Anywhere (v6)

Um eingehende HTTPS Anfragen zu erlauben, muss das Apache Full Profil zugelassen werden. Das HTTP Apache Profil kann entfernt werden.

sudo ufw allow 'Apache Full'
sudo ufw delete allow 'Apache'

Eine Statusabfrage mit sudo ufw status zeigt jetzt Apache Full an.

Zertifikate von Let’s Encrypt

Der certbot wird mit dem Apache Plugin und der gewünschten Domäne (-d) aufgerufen. Die folgenden Fragen nach Parametern sind zu beantworten. Bei der Frage nach Umleitung der HTTP Anfragen auf HTTPS empfehle ich einer Umleitung auf HTTPS zuzustimmen.

sudo certbot --apache -d is.hslomka.de

Die Zertifikate sind nur 90 Tage gültig. Daher hat certbot einen Systemservice eingerichtet, der sich um die Erneuerung der Zertifikate kümmert. Der Prozess kann mit einem --dryrun getestet werden.

certbot renew --dry-run

Der entscprechende systemd Service heißt certbot.timer.

sudo systemctl status certbot.timer
slommi@ubuntu-s-1vcpu-1gb-fra1-01:~$ sudo systemctl status certbot.timer
 certbot.timer - Run certbot twice daily
     Loaded: loaded (/lib/systemd/system/certbot.timer; enabled; vendor preset: enabled)
     Active: active (waiting) since Wed 2021-04-07 13:43:30 UTC; 2 weeks 6 days ago
    Trigger: Wed 2021-04-28 09:59:33 UTC; 2h 17min left
   Triggers: ● certbot.service

Apr 07 13:43:30 ubuntu-s-1vcpu-1gb-fra1-01 systemd[1]: Started Run certbot twice daily.

HTTPS ist eingerichtet.

Leave a Reply