AWS bietet mehrere Möglichkeiten, HTTPS hinzuzufügen, abhängig von Ihrer Architektur. Der richtige Ansatz hängt davon ab, ob Sie einen Load Balancer, CloudFront oder eine eigenständige EC2-Instanz verwenden.
Entscheidungsbaum
Verwenden Sie einen ALB, NLB oder CloudFront?
├── Ja → AWS Certificate Manager (ACM) verwenden — kostenlos, automatische Erneuerung
└── Nein (eigenständige EC2)?
├── Können Sie Certbot installieren? → Certbot auf EC2 (automatische Erneuerung)
└── Kein Root / schnelle Einrichtung? → GetHTTPS → manuelle Installation auf EC2
Option 1: AWS Certificate Manager (ACM) — für Load Balancer & CloudFront
ACM bietet kostenlose SSL-Zertifikate mit automatischer Erneuerung. Sie funktionieren nur mit AWS-Diensten (ALB, NLB, CloudFront, API Gateway) — der private Schlüssel kann nicht heruntergeladen werden.
Zertifikat anfordern
- Öffnen Sie AWS Certificate Manager in der Konsole
- Klicken Sie auf Zertifikat anfordern → Öffentliches Zertifikat anfordern
- Geben Sie Ihre Domain(s) ein:
example.com,*.example.com - Wählen Sie die Validierung: DNS-Validierung (empfohlen) oder E-Mail
- Klicken Sie auf Anfordern
DNS-Validierung
ACM gibt Ihnen einen CNAME-Eintrag, den Sie zu Ihrem DNS hinzufügen:
- Name:
_xxxx.example.com - Wert:
_yyyy.acm-validations.aws
Wenn Ihr DNS in Route 53 liegt, klicken Sie auf “Einträge in Route 53 erstellen” — ACM fügt ihn automatisch hinzu.
An ALB anhängen
- Gehen Sie zu EC2 → Load Balancers → wählen Sie Ihren ALB
- Reiter Listeners → Listener hinzufügen (oder bestehenden bearbeiten)
- Protokoll: HTTPS, Port: 443
- Standardaktion: An Ihre Zielgruppe weiterleiten
- Standard-SSL/TLS-Zertifikat: wählen Sie Ihr ACM-Zertifikat
- Speichern
An CloudFront anhängen
- Gehen Sie zu CloudFront → wählen Sie Ihre Distribution
- Reiter Allgemein → Bearbeiten
- Benutzerdefiniertes SSL-Zertifikat: wählen Sie Ihr ACM-Zertifikat (muss in
us-east-1sein) - Speichern
Option 2: Let’s Encrypt auf EC2 (eigenständige Instanzen)
Wenn Sie eine einzelne EC2-Instanz ohne Load Balancer betreiben, installieren Sie das Zertifikat direkt auf dem Server.
Mit GetHTTPS (keine Installation erforderlich)
- Holen Sie sich ein Zertifikat von GetHTTPS
- Laden Sie die Dateien auf Ihre EC2-Instanz hoch:
scp fullchain.pem privkey.pem ec2-user@your-ec2-ip:/etc/ssl/ - Konfigurieren Sie Nginx oder Apache auf der Instanz
Mit Certbot (automatische Erneuerung)
# Amazon Linux 2023
sudo dnf install certbot python3-certbot-nginx
sudo certbot --nginx -d example.com
# Ubuntu auf EC2
sudo snap install --classic certbot
sudo certbot --nginx -d example.com
Certbot richtet die automatische Erneuerung automatisch ein.
ACM vs Let’s Encrypt auf AWS
| ACM | Let’s Encrypt (GetHTTPS/Certbot) | |
|---|---|---|
| Kosten | Kostenlos | Kostenlos |
| Funktioniert mit ALB/CloudFront | ✅ | ❌ (LE kann nicht einfach in ACM importiert werden) |
| Funktioniert direkt auf EC2 | ❌ | ✅ |
| Automatische Erneuerung | ✅ (AWS-verwaltet) | ✅ (Certbot) oder manuell (GetHTTPS) |
| Zugriff auf privaten Schlüssel | ❌ (AWS verwahrt ihn) | ✅ (Sie haben ihn) |
| Wildcard | ✅ | ✅ |
| Nicht-AWS-Nutzung | ❌ | ✅ (portabel) |
Faustregel: Verwenden Sie ACM für alles hinter einem ALB oder CloudFront. Verwenden Sie Let’s Encrypt für eigenständige EC2-Instanzen.
Security-Group-Konfiguration
Stellen Sie sicher, dass Ihre EC2- oder ALB-Security-Group eingehenden Traffic auf den Ports 80 und 443 erlaubt:
Typ Protokoll Port Quelle
HTTP TCP 80 0.0.0.0/0
HTTPS TCP 443 0.0.0.0/0
Port 80 wird für HTTP→HTTPS-Weiterleitungen und für Let’s Encrypt HTTP-01-Challenges benötigt.
Häufig gestellte Fragen
Kann ich ACM-Zertifikate direkt auf EC2 verwenden?
Nein. ACM-Zertifikate können nur an AWS-verwaltete Dienste (ALB, NLB, CloudFront, API Gateway) angehängt werden. Der private Schlüssel kann nicht exportiert werden. Für eigenständige EC2 verwenden Sie GetHTTPS oder Certbot.
Kann ich ein Let’s Encrypt-Zertifikat in ACM importieren?
Technisch ja (aws acm import-certificate), aber es wird nicht automatisch über ACM erneuert. Sie müssten alle 90 Tage erneut importieren. Es ist einfacher, ACMs native Zertifikate für AWS-Dienste und Let’s Encrypt für EC2 zu verwenden.
Welche AWS-Region für ACM-Zertifikate?
Für ALB/NLB: Fordern Sie das Zertifikat in derselben Region wie Ihren Load Balancer an. Für CloudFront: Das Zertifikat muss in us-east-1 (N. Virginia) sein, unabhängig davon, wo sich Ihr Origin befindet.
Ist ACM wirklich kostenlos?
Ja. Öffentliche SSL/TLS-Zertifikate von ACM sind kostenlos. Es gibt keine Gebühren pro Zertifikat und keine Gebühren für die Erneuerung. Sie zahlen nur für die AWS-Ressourcen, die das Zertifikat verwenden (ALB, CloudFront usw.).
Wie handhabe ich SSL für einen ECS/Fargate-Service?
Stellen Sie einen ALB vor Ihren ECS-Service und hängen Sie ein ACM-Zertifikat an den ALB-Listener an. Der ALB terminiert TLS und leitet HTTP an Ihre Container weiter. Dies ist das Standardmuster für ECS.
Wie handhabe ich SSL für eine statische S3-Website?
S3-Static-Website-Hosting unterstützt keine benutzerdefinierten SSL-Zertifikate direkt. Stellen Sie CloudFront vor S3 und hängen Sie ein ACM-Zertifikat (aus us-east-1) an die CloudFront-Distribution an.
Was ist mit API Gateway?
AWS API Gateway enthält standardmäßig kostenloses SSL unter *.execute-api.region.amazonaws.com. Für eine benutzerdefinierte Domain (z. B. api.example.com) erstellen Sie ein ACM-Zertifikat und konfigurieren Sie einen benutzerdefinierten Domainnamen in API Gateway.
Sollte ich ACM oder GetHTTPS auf AWS verwenden?
| Szenario | Verwenden |
|---|---|
| ALB / NLB / CloudFront | ACM — kostenlos, automatische Erneuerung, native Integration |
| Eigenständige EC2 | GetHTTPS oder Certbot — ACM kann keine Schlüssel zu EC2 exportieren |
| EC2 hinter ALB | ACM auf ALB — EC2 benötigt kein eigenes Zertifikat |
| ECS / Fargate | ACM auf ALB — Standardmuster |
| Lightsail | Lightsail integriert — enthält kostenloses Let’s Encrypt |
Wenn Sie auf reinem EC2 ohne Load Balancer sind, ist GetHTTPS der schnellste Weg, ein Zertifikat zu erhalten — kein AWS CLI erforderlich.