Einfacher Webserver mit SSL Zertifikat unter Ubuntu einrichten

Um einen einfachen Webserver mit SSL Zertifikat aufzusetzen ist nicht viel notwendig. Ihr solltet euch nur via SSH auf eurem Server anmelden können. Zusätzlich sollte eure Domain schon auf den Server zeigen. Wenn ihr Probleme beim konfigurieren habt, wendet euch an euren Anbieter.

Ein kleiner Hinweis, diese Anleitung bezieht sich auf Ubuntu 24.02.

Zur Vorbereitung wird der Server aktualisiert. Das geht mit sudo apt update und sudo apt upgrade. Mit apt update wird nach Updates gesucht und apt upgrade installiert diese dann.

Wenn die Updates und ein Neustart erledigt sind, können wir mit dem Webserver beginnen.

1. Apache installieren

Den Apache Webserver installierst du am einfachsten aus dem Softwareverzeichnis mit dem Befehl sudo apt install apache2. Damit wird der Webserver installiert. Jetzt kann dieser konfiguriert werden.

Konfiguration Webserver

Zu allererst muss der Dienst in den Systemstart mit aufgenommen werden. Dies wird mit dem Befehl sudo systemctl enable apache2 gemacht. Danach wird der Dienst mit sudo systemctl start apache2gestartet.

Hinzufügen der Domain

Danach muss der Apache noch konfiguriert werden. Ansonsten bekommt ihr nur beim Aufruf der IP Adresse eine Seite angezeigt.

Am einfachsten geht es mit einem kompletten Skript

# VirtualHost für Domain erstellen (falls noch nicht passiert)
# Ersetzt eure-url.de durch die genutzte URL. 

# Per export DOMAIN setzen wir eine Umgebungsvariable, die wir später per $DOMAIN nutzen können
export DOMAIN=eure-url.de

# Schritt 1 - Verzeichnis erstellen und Rechte anpassen
sudo mkdir /var/www/$DOMAIN
sudo chown -R www-data:www-data /var/www/$DOMAIN

# Schritt 2 - Apache Config-Datei für domain.de erstellen
printf "
<VirtualHost *:80>
    ServerAdmin admin@$DOMAIN
    ServerName $DOMAIN
    ServerAlias www.$DOMAIN
    DocumentRoot /var/www/$DOMAIN
    ErrorLog \${APACHE_LOG_DIR}/error.log
    CustomLog \${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

<VirtualHost *:443>
    ServerAdmin admin@$DOMAIN
    ServerName $DOMAIN
    ServerAlias www.$DOMAIN
    DocumentRoot /var/www/$DOMAIN
    ErrorLog \${APACHE_LOG_DIR}/error.log
    CustomLog \${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

<Directory /var/www/$DOMAIN/>
    AllowOverride All
</Directory>" | sudo tee /etc/apache2/sites-available/$DOMAIN.conf


# Schritt 3 - VirtualHost Konfiguration für Domain aktivieren
sudo a2enmod ssl
sudo a2enmod rewrite
sudo a2ensite $DOMAIN.conf
sudo systemctl reload apache2

Ersetzt oben eure-url.com durch eure eigene Domain.

PHP hinzufügen

Wenn ihr PHP benötigt, so könnt ihr das mit sudo apt-get install php libapache2-mod-php einfach installieren. Im Anschluss ggf. noch ein sudo a2enmod php ausführen, damit PHP auf dem Webserver aktiv ist. Sollte es nicht direkt funktionieren, den Dienst mit systemctl restart apache2 einmal neustarten.

2. FTP Zugang anlegen und konfigurieren

Wenn der Apache läuft, könnt ihr einen FTP Zugang anlegen. Den passenden Dienst installiert ihr mit sudo apt-get install vsftpd.

3. Let's Encrypt einrichten

Um Zertifkatsfehler zu umgehen kann man sich ein Let's Encrypt Zertifikat ausstellen lassen. Hier muss zuerst der Certbot von Let's Encrypt eingerichtet werden. Dazu installiert ihr diesen mit

sudo apt install certbot python3-certbot-apache

Wenn er installiert ist, könnt ihr mit sudo certbot --apache -d eure-url.de euch das Zertifikat ausstellen und einrichten lassen. Die Zertifikate laufen immer nur 90 Tage. Daher bietet es sich an, diese automatisch verlängern zu lassen. Hierzu müsst ihr die Crontab bearbeiten. Ihr öffnet sie mit sudo crontab -e. In die Datei fügt ihr folgende Zeile ein

0 */12 * * * /usr/bin/certbot renew --quiet

Das war es auch schon. Viel Spaß bei euren Projekten.

Keep on Reading