Zum Hauptinhalt springen
Zurück zur Kategorie

SSL/TLS-Zertifikat einrichten: Let's Encrypt Anleitung

Kostenloses SSL/TLS-Zertifikat mit Let's Encrypt und Certbot auf Nginx und Apache installieren. Automatische Erneuerung, HTTPS-Konfiguration und Fehlerbehebung.

Lesezeit: 12 min Serververwaltung
ssltlslets encryptcertbothttpszertifikatnginxapache
Autor
REXE Teknoloji Network & Security Team
Redaktion
REXE Teknoloji Technical Editorial
Erstveröffentlichung
Letzte Aktualisierung

SSL/TLS-Zertifikat einrichten: Let's Encrypt Anleitung

SSL/TLS-Zertifikate verschlüsseln die Kommunikation zwischen Ihrem Webserver und den Besuchern. HTTPS ist heute für SEO-Rankings, Browser-Vertrauensindikatoren und Benutzersicherheit unerlässlich. Let's Encrypt bietet kostenlose, automatisierte und quelloffene Zertifikate.

Was ist SSL/TLS?

SSL (Secure Sockets Layer) und sein moderner Nachfolger TLS (Transport Layer Security) sind kryptografische Protokolle, die Daten im Netzwerk sichern. Bei HTTPS:

  • Daten werden verschlüsselt übertragen (Vertraulichkeit)
  • Die Serveridentität wird verifiziert (Authentifizierung)
  • Daten können nicht manipuliert werden (Integrität)

Moderne Browser markieren HTTP-Seiten als 'Nicht sicher'. Google verwendet HTTPS als Rankingfaktor. Auf REXE-Servern ist die SSL-Installation kostenlos und einfach.

Certbot installieren

Certbot ist das offizielle Tool zum automatischen Abrufen und Erneuern von Let's Encrypt-Zertifikaten.

Debian/Ubuntu

hljs bash
# System aktualisieren
sudo apt update && sudo apt upgrade -y

# Certbot mit Nginx-Plugin installieren
sudo apt install certbot python3-certbot-nginx -y

# Für Apache
sudo apt install certbot python3-certbot-apache -y

RHEL/CentOS/AlmaLinux

hljs bash
# EPEL-Repository hinzufügen
sudo dnf install epel-release -y

# Certbot installieren
sudo dnf install certbot python3-certbot-nginx -y

Installation via Snap (Empfohlen)

hljs bash
# Snapd installieren
sudo apt install snapd -y

# Certbot via Snap installieren
sudo snap install --classic certbot

# Symlink erstellen
sudo ln -s /snap/bin/certbot /usr/bin/certbot

# Version prüfen
certbot --version

SSL-Zertifikat für Nginx

Voraussetzungen

Vor der Zertifikatsausstellung:

  1. Ihre Domain muss auf die IP-Adresse Ihres Servers zeigen
  2. Ports 80 und 443 müssen geöffnet sein
  3. Nginx muss laufen
hljs bash
# Domain-Auflösung prüfen
nslookup example.com

# Firewall-Status prüfen
sudo ufw status
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

Automatische Nginx-Konfiguration

hljs bash
# Zertifikat abrufen und Nginx automatisch konfigurieren
sudo certbot --nginx -d example.com -d www.example.com

# Nur Zertifikat abrufen (manuelle Konfiguration)
sudo certbot certonly --nginx -d example.com -d www.example.com

# Wildcard-Zertifikat (DNS-Challenge erforderlich)
sudo certbot certonly --manual --preferred-challenges dns -d "*.example.com" -d example.com

Manuelle Nginx SSL-Konfiguration

hljs nginx
# HTTP zu HTTPS umleiten
server {
    listen 80;
    server_name example.com www.example.com;
    return 301 https://$server_name$request_uri;
}

# HTTPS-Serverblock
server {
    listen 443 ssl http2;
    server_name example.com www.example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
    ssl_prefer_server_ciphers off;
    ssl_session_cache shared:SSL:10m;

    add_header Strict-Transport-Security "max-age=15768000" always;

    root /var/www/example.com/html;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}
hljs bash
# Konfiguration testen
sudo nginx -t

# Nginx neu laden
sudo systemctl reload nginx

SSL-Zertifikat für Apache

hljs bash
# SSL-Modul aktivieren
sudo a2enmod ssl
sudo a2enmod rewrite

# Zertifikat mit Apache-Plugin abrufen
sudo certbot --apache -d example.com -d www.example.com

Manuelle Apache SSL-Konfiguration

hljs apache
<VirtualHost *:443>
    ServerName example.com
    DocumentRoot /var/www/example.com

    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem

    SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
    Header always set Strict-Transport-Security "max-age=15768000"
</VirtualHost>

<VirtualHost *:80>
    ServerName example.com
    Redirect permanent / https://example.com/
</VirtualHost>

Automatische Erneuerung

Let's Encrypt-Zertifikate sind 90 Tage gültig. Certbot richtet einen systemd-Timer oder Cron-Job ein.

hljs bash
# Automatische Erneuerung testen
sudo certbot renew --dry-run

# Timer-Status prüfen
sudo systemctl status certbot.timer

# Manuelle Erneuerung
sudo certbot renew

# Nginx nach Erneuerung neu laden
sudo certbot renew --post-hook "systemctl reload nginx"

Cron-basierte Erneuerung

hljs bash
# Crontab bearbeiten
sudo crontab -e

# Zweimal täglich prüfen
0 0,12 * * * certbot renew --quiet --post-hook "systemctl reload nginx"

Zertifikatsstatus prüfen

hljs bash
# Alle Zertifikate auflisten
sudo certbot certificates

# Ablaufdatum prüfen
echo | openssl s_client -connect example.com:443 2>/dev/null | openssl x509 -noout -dates

Fehlerbehebung

Port 80 gesperrt

hljs bash
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo systemctl status nginx

Domain-Auflösungsfehler

hljs bash
nslookup example.com 8.8.8.8
dig example.com +short
curl -4 ifconfig.me

Let's Encrypt hat Rate-Limits: 5 fehlgeschlagene Versuche pro Stunde. Verwenden Sie --staging zum Testen.

hljs bash
# Staging-Umgebung (keine Rate-Limits)
sudo certbot --nginx --staging -d example.com

Fazit

Mit Let's Encrypt und Certbot dauert die SSL/TLS-Zertifikatsinstallation nur wenige Minuten. Die automatische Erneuerung beseitigt Bedenken wegen ablaufender Zertifikate. HTTPS auf REXE-Servern ist sowohl für die Sicherheit als auch für die SEO-Performance entscheidend.

Häufig gestellte Fragen

Ist Let's Encrypt wirklich kostenlos?

Ja, Let's Encrypt ist vollständig kostenlos. Zertifikate sind 90 Tage gültig und werden von Certbot automatisch erneuert. Der einzige Unterschied zu kommerziellen Zertifikaten ist, dass keine Organisationsvalidierung (OV) oder erweiterte Validierung (EV) angeboten wird.

Wie erhalte ich ein Wildcard-Zertifikat?

Wildcard-Zertifikate (*.example.com) erfordern DNS-Validierung: 'sudo certbot certonly --manual --preferred-challenges dns -d "*.example.com"'. Certbot gibt einen TXT-Record-Wert an, den Sie in Ihrem DNS-Manager eintragen.

Wann wird das Zertifikat erneuert?

Certbot erneuert Zertifikate 30 Tage vor Ablauf. Es prüft zweimal täglich per systemd-Timer oder Cron-Job. Führen Sie 'sudo certbot renew --dry-run' aus, um den Erneuerungsprozess zu testen.

Kann ich ein Zertifikat für mehrere Domains erhalten?

Ja, mit SAN (Subject Alternative Names): 'sudo certbot --nginx -d example.com -d www.example.com -d api.example.com'. Ein einzelnes Zertifikat kann bis zu 100 Domains abdecken.

Die Website zeigt nach der SSL-Installation noch HTTP, warum?

Leeren Sie den Browser-Cache. Stellen Sie sicher, dass die HTTP-zu-HTTPS-Weiterleitung (301) in Nginx/Apache konfiguriert ist. Führen Sie 'sudo nginx -t && sudo systemctl reload nginx' aus.

Verwandte Artikel

NetzwerkverkehrEingehend GbpsAusgehend Gbps