Let's Encrypt
Let's Encrypt ist eine kostenlose, automatisierte und offene Certificate Authority (CA), die SSL/TLS-Zertifikate für Websites bereitstellt. Die Non-Profit-Organisation wurde 2015 von der Internet Security Research Group (ISRG) gegründet und hat die HTTPS-Verschlüsselung im Internet revolutioniert.
Kernprinzipien von Let's Encrypt
Let's Encrypt basiert auf drei fundamentalen Prinzipien:
- Kostenlos - Alle Zertifikate sind ohne Gebühren erhältlich
- Automatisiert - Zertifikate können programmatisch erstellt und erneuert werden
- Transparent - Alle Zertifikate sind öffentlich einsehbar und nachvollziehbar
Vorteile für SEO
SEO-Vorteile von HTTPS
- Ranking-Signal: HTTPS ist seit 2014 offizieller Ranking-Faktor
- Vertrauen: Nutzer sehen das Schloss-Symbol in der Adressleiste
- Referrer-Data: Vollständige Referrer-Informationen in Analytics
- Core Web Vitals: Bessere Performance durch HTTP/2-Unterstützung
Zertifikat-Typen
Domain-Validated (DV) Zertifikate
Die häufigste Art von Let's Encrypt Zertifikaten:
- Validierung: Nur Domain-Besitz wird geprüft
- Ausstellungszeit: Wenige Minuten
- Verwendung: Standard-Websites, Blogs, kleine Unternehmen
- Vertrauen: Hohe Browser-Akzeptanz
Wildcard-Zertifikate
Für Subdomains geeignet:
- Format:
*.example.com - Abdeckung: Alle Subdomains einer Domain
- Einsatz: Multi-Subdomain-Architekturen
- Limitierung: Nur eine Wildcard-Ebene möglich
Multi-Domain (SAN) Zertifikate
Für mehrere Domains:
- Unterstützung: Bis zu 100 Domains pro Zertifikat
- Flexibilität: Verschiedene Domains in einem Zertifikat
- Management: Zentralisierte Zertifikatsverwaltung
Installation und Setup
Voraussetzungen
- Domain-Kontrolle: Vollständige Kontrolle über die Domain
- Server-Zugang: Root- oder sudo-Zugang zum Server
- Port 80/443: Offene Ports für ACME-Protokoll
- DNS-Konfiguration: Korrekte DNS-Einstellungen
Certbot Installation
Certbot ist der offizielle ACME-Client für Let's Encrypt:
# Ubuntu/Debian
sudo apt update
sudo apt install certbot
# CentOS/RHEL
sudo yum install certbot
# macOS mit Homebrew
brew install certbot
Zertifikat-Erstellung
Standalone-Modus
Für Server ohne laufenden Webserver:
sudo certbot certonly --standalone -d example.com -d www.example.com
Webroot-Modus
Für laufende Webserver:
sudo certbot certonly --webroot -w /var/www/html -d example.com
Nginx-Plugin
Automatische Konfiguration für Nginx:
sudo certbot --nginx -d example.com -d www.example.com
Apache-Plugin
Automatische Konfiguration für Apache:
sudo certbot --apache -d example.com -d www.example.com
Automatisierung und Erneuerung
Automatische Erneuerung
Let's Encrypt Zertifikate haben eine Gültigkeitsdauer von 90 Tagen und müssen regelmäßig erneuert werden:
Cron-Job einrichten
# Tägliche Überprüfung und Erneuerung
0 12 * * * /usr/bin/certbot renew --quiet
Systemd-Timer (empfohlen)
# Timer aktivieren
sudo systemctl enable certbot.timer
sudo systemctl start certbot.timer
# Status prüfen
sudo systemctl status certbot.timer
Erneuerung testen
Vor der Produktivnutzung sollte die Erneuerung getestet werden:
# Dry-run für Test
sudo certbot renew --dry-run
# Manuelle Erneuerung
sudo certbot renew
Webserver-Konfiguration
Nginx-Konfiguration
Beispiel-Konfiguration für Nginx:
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-Konfiguration
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512;
ssl_prefer_server_ciphers off;
# HSTS
add_header Strict-Transport-Security "max-age=63072000" always;
}
Apache-Konfiguration
Beispiel-Konfiguration für Apache:
<VirtualHost *:443>
ServerName example.com
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem
# HSTS
Header always set Strict-Transport-Security "max-age=63072000"
</VirtualHost>
Monitoring und Wartung
Zertifikats-Status prüfen
Online-Tools
- SSL Labs: https://www.ssllabs.com/ssltest/
- SSL Checker: https://www.sslchecker.com/
- Why No Padlock: https://www.whynopadlock.com/
Command-Line-Tools
# Zertifikats-Details anzeigen
openssl x509 -in /etc/letsencrypt/live/example.com/cert.pem -text -noout
# Ablaufdatum prüfen
openssl x509 -in /etc/letsencrypt/live/example.com/cert.pem -dates -noout
# Gültigkeit testen
openssl s_client -connect example.com:443 -servername example.com
Monitoring-Setup
Nagios/Icinga
# Zertifikats-Überwachung
check_ssl_cert -H example.com -w 30 -c 7
Zabbix
# Zabbix-Template für SSL-Zertifikate
zabbix_get -s example.com -k ssl.certificate[example.com,443]
Häufige Probleme und Lösungen
/var/log/letsencrypt/
Rate Limits
Let's Encrypt hat strenge Rate Limits:
- Zertifikate pro Domain: 50 pro Woche
- Duplicates: 5 pro Woche
- Registrierungen: 500 pro IP pro 3 Stunden
DNS-Challenges
Für Domains ohne öffentlichen Webserver:
# DNS-TXT-Record Challenge
sudo certbot certonly --manual --preferred-challenges dns -d example.com
Wildcard-Zertifikate
Wildcard-Zertifikate erfordern DNS-Validierung:
# Wildcard-Zertifikat erstellen
sudo certbot certonly --manual --preferred-challenges dns -d *.example.com
Best Practices
Sicherheits-Best-Practices
- Automatische Erneuerung: Immer aktiviert halten
- Monitoring: Zertifikats-Status überwachen
- Backup: Zertifikate regelmäßig sichern
- HSTS: HTTP Strict Transport Security aktivieren
- Cipher-Suites: Moderne Verschlüsselung verwenden
Performance-Optimierung
- OCSP-Stapling: Reduziert Zertifikats-Validierungszeit
- Session-Resumption: Wiederverwendung von SSL-Sessions
- HTTP/2: Bessere Performance durch Multiplexing
- TLS 1.3: Neueste Verschlüsselungsstandards
- Certificate Transparency: Transparente Zertifikats-Überwachung
Integration mit CDN und Load Balancern
Cloudflare-Integration
Cloudflare unterstützt Let's Encrypt vollständig:
- Universal SSL: Automatische HTTPS-Verschlüsselung
- Edge-Zertifikate: Kostenlose Zertifikate für alle Domains
- Automatische Erneuerung: Keine manuelle Wartung nötig
AWS-Integration
Für AWS-Umgebungen:
# AWS CLI für Route 53 DNS-Challenge
sudo certbot certonly --dns-route53 -d example.com
Zukunft von Let's Encrypt
Geplante Verbesserungen
- Post-Quantum-Kryptographie: Vorbereitung auf Quantencomputer
- Erweiterte Validierung: EV-Zertifikate in Planung
- Mobile-Integration: Bessere Unterstützung für mobile Apps
- API-Verbesserungen: Erweiterte ACME-Protokoll-Features
Alternative ACME-Provider
- Buypass: Norwegischer ACME-Provider
- ZeroSSL: Kommerzieller ACME-Service
- SSL.com: Enterprise-ACME-Lösungen