AWS propose plusieurs façons d’ajouter HTTPS selon votre architecture. La bonne approche dépend de l’utilisation d’un load balancer, de CloudFront ou d’une instance EC2 autonome.
Arbre de décision
Utilisez-vous un ALB, NLB ou CloudFront ?
├── Oui → Utiliser AWS Certificate Manager (ACM) — gratuit, renouvellement automatique
└── Non (EC2 autonome) ?
├── Pouvez-vous installer Certbot ? → Certbot sur EC2 (renouvellement automatique)
└── Pas de root / configuration rapide ? → GetHTTPS → installation manuelle sur EC2
Option 1 : AWS Certificate Manager (ACM) — pour les load balancers & CloudFront
ACM fournit des certificats SSL gratuits avec renouvellement automatique. Ils ne fonctionnent qu’avec les services AWS (ALB, NLB, CloudFront, API Gateway) — la clé privée ne peut pas être téléchargée.
Demander un certificat
- Ouvrez AWS Certificate Manager dans la console
- Cliquez sur Demander un certificat → Demander un certificat public
- Saisissez votre/vos domaine(s) :
example.com,*.example.com - Choisissez la validation : Validation DNS (recommandée) ou par e-mail
- Cliquez sur Demander
Validation DNS
ACM vous fournit un enregistrement CNAME à ajouter à votre DNS :
- Nom :
_xxxx.example.com - Valeur :
_yyyy.acm-validations.aws
Si votre DNS est dans Route 53, cliquez sur “Créer des enregistrements dans Route 53” — ACM l’ajoute automatiquement.
Attacher à un ALB
- Allez dans EC2 → Load Balancers → sélectionnez votre ALB
- Onglet Listeners → Ajouter un listener (ou modifier l’existant)
- Protocole : HTTPS, Port : 443
- Action par défaut : Transférer vers votre groupe cible
- Certificat SSL/TLS par défaut : sélectionnez votre certificat ACM
- Enregistrer
Attacher à CloudFront
- Allez dans CloudFront → sélectionnez votre distribution
- Onglet Général → Modifier
- Certificat SSL personnalisé : sélectionnez votre certificat ACM (doit être dans
us-east-1) - Enregistrer
Option 2 : Let’s Encrypt sur EC2 (instances autonomes)
Si vous exécutez une seule instance EC2 sans load balancer, installez le certificat directement sur le serveur.
Avec GetHTTPS (aucune installation requise)
- Obtenez un certificat depuis GetHTTPS
- Téléchargez les fichiers sur votre instance EC2 :
scp fullchain.pem privkey.pem ec2-user@your-ec2-ip:/etc/ssl/ - Configurez Nginx ou Apache sur l’instance
Avec Certbot (renouvellement automatique)
# Amazon Linux 2023
sudo dnf install certbot python3-certbot-nginx
sudo certbot --nginx -d example.com
# Ubuntu sur EC2
sudo snap install --classic certbot
sudo certbot --nginx -d example.com
Certbot configure le renouvellement automatique automatiquement.
ACM vs Let’s Encrypt sur AWS
| ACM | Let’s Encrypt (GetHTTPS/Certbot) | |
|---|---|---|
| Coût | Gratuit | Gratuit |
| Fonctionne avec ALB/CloudFront | ✅ | ❌ (impossible d’importer LE dans ACM facilement) |
| Fonctionne directement sur EC2 | ❌ | ✅ |
| Renouvellement automatique | ✅ (géré par AWS) | ✅ (Certbot) ou manuel (GetHTTPS) |
| Accès à la clé privée | ❌ (AWS la conserve) | ✅ (vous l’avez) |
| Wildcard | ✅ | ✅ |
| Utilisation hors AWS | ❌ | ✅ (portable) |
Règle générale : Utilisez ACM pour tout ce qui est derrière un ALB ou CloudFront. Utilisez Let’s Encrypt pour les instances EC2 autonomes.
Configuration du groupe de sécurité
Assurez-vous que votre groupe de sécurité EC2 ou ALB autorise le trafic entrant sur les ports 80 et 443 :
Type Protocole Port Source
HTTP TCP 80 0.0.0.0/0
HTTPS TCP 443 0.0.0.0/0
Le port 80 est nécessaire pour les redirections HTTP→HTTPS et pour les challenges HTTP-01 de Let’s Encrypt.
Questions fréquemment posées
Puis-je utiliser des certificats ACM directement sur EC2 ?
Non. Les certificats ACM ne peuvent être attachés qu’aux services gérés par AWS (ALB, NLB, CloudFront, API Gateway). La clé privée ne peut pas être exportée. Pour une EC2 autonome, utilisez GetHTTPS ou Certbot.
Puis-je importer un certificat Let’s Encrypt dans ACM ?
Techniquement oui (aws acm import-certificate), mais il ne se renouvellera pas automatiquement via ACM. Vous devriez réimporter tous les 90 jours. Il est plus simple d’utiliser les certificats natifs d’ACM pour les services AWS et Let’s Encrypt pour EC2.
Quelle région AWS pour les certificats ACM ?
Pour ALB/NLB : demandez le certificat dans la même région que votre load balancer. Pour CloudFront : le certificat doit être dans us-east-1 (Virginie du Nord), quelle que soit la localisation de votre origine.
ACM est-il vraiment gratuit ?
Oui. Les certificats SSL/TLS publics d’ACM sont gratuits. Il n’y a aucun frais par certificat ni pour le renouvellement. Vous ne payez que les ressources AWS qui utilisent le certificat (ALB, CloudFront, etc.).
Comment gérer SSL pour un service ECS/Fargate ?
Placez un ALB devant votre service ECS et attachez un certificat ACM au listener de l’ALB. L’ALB termine TLS et transfère le HTTP à vos conteneurs. C’est le modèle standard pour ECS.
Comment gérer SSL pour un site web statique S3 ?
L’hébergement de site web statique S3 ne prend pas en charge les certificats SSL personnalisés directement. Placez CloudFront devant S3 et attachez un certificat ACM (depuis us-east-1) à la distribution CloudFront.
Qu’en est-il d’API Gateway ?
AWS API Gateway inclut du SSL gratuit par défaut sur *.execute-api.region.amazonaws.com. Pour un domaine personnalisé (par ex. api.example.com), créez un certificat ACM et configurez un nom de domaine personnalisé dans API Gateway.
Dois-je utiliser ACM ou GetHTTPS sur AWS ?
| Scénario | Utiliser |
|---|---|
| ALB / NLB / CloudFront | ACM — gratuit, renouvellement automatique, intégration native |
| EC2 autonome | GetHTTPS ou Certbot — ACM ne peut pas exporter les clés vers EC2 |
| EC2 derrière ALB | ACM sur ALB — EC2 n’a pas besoin de son propre certificat |
| ECS / Fargate | ACM sur ALB — modèle standard |
| Lightsail | Lightsail intégré — inclut Let’s Encrypt gratuit |
Si vous êtes sur une EC2 sans load balancer, GetHTTPS est le moyen le plus rapide d’obtenir un certificat — aucun AWS CLI requis.