TLS/SSL auf Linux einrichten: HTTPS mit Let’s Encrypt Schritt für Schritt

Die Absicherung von Webservern mit TLS/SSL ist heute unverzichtbar, um Datenübertragungen zu verschlüsseln und das Vertrauen von Besuchern zu gewährleisten. Let’s Encrypt bietet kostenlose Zertifikate, die automatisch erneuert werden können. In diesem Leitfaden erfahren Einsteiger, IT-Studierende und Junior Network Engineers Schritt für Schritt, wie TLS/SSL auf Linux installiert und konfiguriert wird, um HTTPS auf Webservern wie Apache oder Nginx bereitzustellen.

Systemvorbereitung

Bevor TLS/SSL eingerichtet wird, sollte das Linux-System auf dem aktuellen Stand sein und notwendige Pakete installiert werden.

System aktualisieren

sudo apt update
sudo apt upgrade -y

Für CentOS/RHEL:

sudo yum update -y

Hilfspakete installieren

sudo apt install wget curl git unzip -y

Webserver vorbereiten

TLS/SSL benötigt einen Webserver. Stellen Sie sicher, dass Apache oder Nginx installiert und konfiguriert ist.

Apache starten und aktivieren

sudo systemctl start apache2
sudo systemctl enable apache2

Nginx starten und aktivieren

sudo systemctl start nginx
sudo systemctl enable nginx

Let’s Encrypt Certbot installieren

Certbot automatisiert die Zertifikatserstellung und -erneuerung.

Installation unter Ubuntu/Debian

sudo apt install certbot python3-certbot-apache -y  # für Apache
sudo apt install certbot python3-certbot-nginx -y   # für Nginx

Installation unter CentOS/RHEL

sudo yum install epel-release -y
sudo yum install certbot python3-certbot-apache -y  # für Apache
sudo yum install certbot python3-certbot-nginx -y   # für Nginx

Erstellung eines TLS/SSL-Zertifikats

Das Zertifikat kann direkt über Certbot für die gewünschte Domain erstellt werden.

Apache Beispiel

sudo certbot --apache -d meinewebsite.de -d www.meinewebsite.de

Nginx Beispiel

sudo certbot --nginx -d meinewebsite.de -d www.meinewebsite.de

Interaktive Eingaben

  • Geben Sie eine gültige E-Mail-Adresse an
  • Akzeptieren Sie die Nutzungsbedingungen
  • Wählen Sie aus, ob HTTP zu HTTPS weitergeleitet werden soll

Automatische Zertifikatserneuerung

Let’s Encrypt Zertifikate sind 90 Tage gültig. Certbot kann automatische Erneuerungen einrichten.

Erneuerung testen

sudo certbot renew --dry-run

Cronjob für automatische Erneuerung

sudo crontab -e

Beispielzeile für zweimal täglich:

0 0,12 * * * certbot renew --quiet

Apache TLS/SSL Konfiguration prüfen

Nach der Installation sollte die Apache-Konfiguration überprüft werden.

sudo apache2ctl configtest
sudo systemctl reload apache2

Nginx TLS/SSL Konfiguration prüfen

Bei Nginx ebenfalls die Konfiguration testen:

sudo nginx -t
sudo systemctl reload nginx

Sicherheitsoptimierungen

Um die Sicherheit von HTTPS zu erhöhen, können folgende Maßnahmen umgesetzt werden:

  • SSL Protokolle auf TLSv1.2 und TLSv1.3 beschränken
  • Starke Cipher Suites aktivieren
  • HTTP Strict Transport Security (HSTS) aktivieren
  • OCSP Stapling aktivieren

Apache Beispiel für SSL-Konfiguration

sudo nano /etc/apache2/sites-available/meinewebsite-le-ssl.conf
SSLEngine on
SSLProtocol -all +TLSv1.2 +TLSv1.3
SSLCipherSuite HIGH:!aNULL:!MD5
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
SSLUseStapling on
SSLStaplingCache "shmcb:logs/ssl_stapling(32768)"

Nginx Beispiel für SSL-Konfiguration

server {
    listen 443 ssl;
    server_name meinewebsite.de www.meinewebsite.de;
ssl_certificate /etc/letsencrypt/live/meinewebsite.de/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/meinewebsite.de/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
ssl_stapling on;
ssl_stapling_verify on;

}

Firewall und Netzwerk prüfen

Die Ports 80 (HTTP) und 443 (HTTPS) müssen offen sein, damit der Server erreichbar ist.

Firewall konfigurieren (UFW)

sudo ufw allow 'Apache Full'    # oder 'Nginx Full'
sudo ufw enable
sudo ufw status

Subnetz und IP prüfen

Beispiel: Server-IP 192.168.40.10/24

<math>
Subnetzadresse = 192.168.40.10 & 255.255.255.0 = 192.168.40.0
Broadcastadresse = 192.168.40.0 | ~255.255.255.0 = 192.168.40.255
</math>

Netzwerkinterface konfigurieren

sudo nano /etc/netplan/01-netcfg.yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s3:
      dhcp4: no
      addresses:
        - 192.168.40.10/24
      gateway4: 192.168.40.1
      nameservers:
        addresses: [8.8.8.8, 8.8.4.4]
sudo netplan apply

Monitoring und Logs

Regelmäßige Überprüfung von Logs hilft, Sicherheitsprobleme und Zertifikatsfehler frühzeitig zu erkennen.

Apache Logs prüfen

tail -f /var/log/apache2/error.log
tail -f /var/log/apache2/access.log

Nginx Logs prüfen

tail -f /var/log/nginx/error.log
tail -f /var/log/nginx/access.log

Best Practices

  • Regelmäßige Updates von Certbot, Apache/Nginx und Linux-Paketen
  • Automatische Erneuerung der Let’s Encrypt Zertifikate testen
  • HTTP zu HTTPS Weiterleitungen erzwingen
  • HSTS aktivieren, um Browser zu HTTPS zu zwingen
  • Firewall und Fail2ban für zusätzlichen Schutz

Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3

Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.

Meine Leistungen umfassen:

  • Professionelle Konfiguration von Routern und Switches

  • Einrichtung von VLANs, Trunks, Routing, DHCP, NAT, ACLs und weiteren Netzwerkfunktionen

  • Erstellung von Topologien und Simulationen in Cisco Packet Tracer

  • Aufbau, Analyse und Fehlerbehebung von Netzwerk-Labs in GNS3 und EVE-NG

  • Automatisierung von Netzwerkkonfigurationen mit Python, Netmiko, Paramiko, NAPALM und Ansible

  • Erstellung von Skripten für wiederkehrende Netzwerkaufgaben

  • Dokumentation der Konfigurationen und Bereitstellung nachvollziehbarer Lösungswege

  • Konfigurations-Backups, Optimierung bestehender Setups und technisches Troubleshooting

Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

Related Articles