Comment configurer des certificats SSL gratuits à l’aide d’AWS Load Balancers
Amazon propose des certificats SSL gratuits à utiliser avec nombre de leurs services. Si vous utilisez déjà EC2 pour l’hébergement Web, vous pouvez ajouter un Load Balancer devant votre serveur pour sécuriser votre trafic via HTTPS.
Sommaire
Qu’est-ce qu’un certificat SSL?
SSL est la méthode de cryptage utilisée pour sécuriser les connexions HTTPS, et si votre site est crypté avec elle, les navigateurs de vos utilisateurs afficheront le symbole du cadenas dans la barre d’URL. Un certificat SSL est requis pour utiliser SSL, et vous pouvez en obtenir un auprès d’une autorité de certification (CA). L’AC agit en tant que tiers pour vérifier que votre connexion est légitime et que vous êtes bien qui vous prétendez être (c’est-à-dire que personne n’essaie de changer de connexion).
De nombreuses autorités de certification facturent des centaines de dollars pour les certificats, mais vous pouvez les obtenir gratuitement à partir de quelques endroits. Amazon Web Services les offre gratuitement si vous utilisez leurs équilibreurs de charge, mais les équilibreurs de charge eux-mêmes coûtent 16 $ + par mois. Si ce n’est pas une option, vous pouvez toujours obtenir des certificats SSL gratuits de LetsEncrypt, que vous devrez installer manuellement sur votre serveur Web.
Rien ne vous empêche d’utiliser LetsEncrypt avec des instances AWS EC2, ou même des équilibreurs de charge, mais les certificats AWS sont plus configurables et fonctionnent avec d’autres services AWS. Par exemple, si vous utilisez AWS Cloudfront, vous pouvez utiliser le même certificat SSL que vous générez pour l’équilibreur de charge, sans avoir à vous soucier de les renouveler individuellement.
Créer un nouveau certificat SSL à partir d’AWS Certificate Manager
Pour les besoins de ce guide, nous supposerons que vous utilisez déjà EC2 dans une certaine mesure et que vous disposez d’un serveur Web en cours d’exécution. Le type de serveur Web que vous exécutez n’a pas d’importance, car le certificat ne sera installé que dans l’équilibreur de charge, mais vous aurez toujours besoin de quelque chose derrière pour servir le contenu.
Vous aurez également besoin d’accéder aux paramètres de votre nom de domaine, à la fois pour ajouter de nouveaux enregistrements pour vérifier votre domaine et pour pointer votre domaine vers le nouvel équilibreur de charge une fois que c’est fait.
Dans la console de gestion EC2, cliquez sur « Services » dans la barre supérieure et recherchez « certificat ». Ouvrez le gestionnaire de certificats.
Cliquez sur «Commencer» sous «Fournir des certificats».
Ce certificat sera utilisé pour sécuriser les connexions sur Internet, il devrait donc être public. Sélectionnez « public » et cliquez sur « Demander ».
Vous pouvez maintenant ajouter votre nom de domaine au certificat. Les certificats AWS prennent en charge les caractères génériques, il peut donc être utile d’inclure "*.yourdomain.com"
ainsi, pour sécuriser tous les sous-domaines que vous pourriez avoir. Ajoutez le domaine dont vous avez besoin, puis cliquez sur « Suivant ».
Vous devez maintenant valider votre domaine. AWS propose deux types de vérification: DNS et e-mail.
DNS vous demandera d’ajouter un enregistrement CNAME à votre nom de domaine. Si vous utilisez AWS Route 53 comme fournisseur DNS, c’est facile, mais si vous utilisez autre chose, la vérification du processus peut prendre des heures.
Le courrier électronique ne prend que quelques minutes. AWS enverra un e-mail au contact WHOIS enregistré, ainsi qu’à "admin@yourdomain.com"
et quelques autres e-mails courants pour les administrateurs Web. Si vous n’avez pas d’e-mail privé pour votre domaine, vous pouvez généralement configurer le transfert d’e-mails vers un compte Gmail public à partir des paramètres de votre registraire, ce qui fonctionnera tout aussi bien.
Si vous optez pour la vérification DNS, copiez le « Nom » et la « Valeur » dans la liste déroulante du domaine. Si vous vérifiez plusieurs domaines, vérifiez si les valeurs sont différentes, car vous devrez peut-être les vérifier individuellement.
À partir des paramètres de votre fournisseur DNS, ajoutez un nouvel enregistrement CNAME et collez le nom et la valeur dans le formulaire (cette interface variera en fonction de votre fournisseur).
Alors que DNS ne prend que quelques minutes à se propager, AWS peut prendre quelques heures pour valider le domaine, alors peut-être prendre un déjeuner. Si vous utilisez la vérification par e-mail, cela ne devrait prendre que quelques minutes après avoir cliqué sur le lien dans votre e-mail.
Une fois que c’est fait, vous devriez voir le commutateur orange «En attente de validation» sur un vert «Émis». Vous n’aurez rien à télécharger; le certificat est automatiquement utilisable dans d’autres services AWS.
Configurer un équilibreur de charge avec votre nouveau certificat
Une fois le certificat créé, il est prêt à être installé dans un équilibreur de charge. Les AWS Load Balancers fonctionnent comme des proxys avec plusieurs points de terminaison, capables de transférer le trafic d’une adresse IP publique vers de nombreuses adresses IP privées et d’équilibrer la charge entre elles.
Nous allons en configurer un pour écouter sur le port HTTPS public 443 et transférer le trafic vers le port 443 sur votre serveur Web. Le port du serveur Web peut être différent, comme le port 8080, car la connexion entre l’équilibreur de charge et le serveur Web est interne, mais nous supposons que votre serveur Web a déjà le port 443 ouvert. Sinon, vous devrez l’ouvrir à partir des règles de sécurité de votre instance EC2.
Dans la console de gestion EC2, faites défiler la barre latérale pour trouver «Équilibreurs de charge», puis cliquez sur «Créer un équilibreur de charge».
Il existe quelques types d’équilibreur de charge qui fonctionnent à différents niveaux, mais pour plus de simplicité, nous choisirons «Equilibreur de charge d’application», qui équilibre HTTP et HTTPS de base.
Dans les options, donnez-lui un nom interne et ajoutez un écouteur HTTPS. Il devrait par défaut sur le port 443, la norme pour HTTPS.
Cliquez sur suivant pour accéder à «Configurer les paramètres de sécurité» et une option vous sera proposée pour choisir un certificat (ou télécharger le vôtre, si vous utilisez un autre service SSL). Sélectionnez «Choisir un certificat dans ACM» et sélectionnez votre certificat dans la liste déroulante. Si vous ne le voyez pas, essayez d’appuyer sur l’icône d’actualisation verte, et s’il n’est toujours pas là, vous devriez vérifier vos paramètres dans le gestionnaire de certificats.
Cliquez sur suivant pour accéder à «Configurer les groupes de sécurité» et créer un nouveau groupe de sécurité. Par défaut, les ports 80 et 443 seront ouverts, ce que vous souhaitez probablement.
Cliquez sur suivant pour accéder à «Configurer le routage» et entrez un nom interne pour le groupe cible. Assurez-vous que le protocole est défini sur HTTPS.
Cliquez sur Suivant pour accéder à «Enregistrer les cibles», puis entrez le adresse IP privée de vos instances EC2, que vous pouvez trouver à partir de la console de gestion EC2. Si vous les avez saisis correctement, l’interface doit afficher l’ID de l’instance et la zone dans laquelle elle se trouve.
Cliquez sur suivant pour accéder à l’examen, et si tout semble correct, cliquez sur «Créer» pour configurer votre équilibreur de charge.
Revenez à la console de gestion EC2 et cliquez sur l’onglet Équilibreurs de charge. Cela prendra quelques minutes, mais une fois votre équilibreur configuré, vous pourrez copier l’adresse DNS. L’adresse IP réelle de votre Load Balancer changera, mais l’adresse DNS pointera toujours vers elle.
Vous voudrez remplacer votre adresse IP existante par votre nom de domaine par cette adresse, afin que les visiteurs soient dirigés vers votre Load Balancer, qui sécurisera la connexion et les dirigera vers votre ou vos serveurs Web EC2.
Ce même certificat fonctionnera avec de nombreux autres services AWS; par exemple, si vous vous êtes inscrit *.yourdomain.com
avec le certificat, vous seriez en mesure de servir du contenu S3 via Cloudfront à media.yourdomain.com
en utilisant le même certificat. Vous ne pouvez pas les télécharger manuellement, ils seront donc toujours verrouillés sur les services AWS et gérés par Amazon.