Blog

Certificats TLS génériques automatiques

Chargement...

5 min de lecture

Certificats TLS génériques automatiques

Scalingo génère désormais automatiquement des certificats TLS Let's Encrypt.

""

Cela fait déjà deux ans que la plateforme a commencé à générer des certificats pour tous les domaines liés aux applications hébergées afin de permettre le HTTPS (SSL/TLS) automatiquement. Une limite de cette fonctionnalité était que les domaines génériques n'étaient pas compatibles et nos utilisateurs devaient continuer à dépenser leur argent pour acheter des certificats génériques coûteux auprès d'autorités de certification tierces. Cette période est maintenant révolue car Scalingo générera également des certificats génériques automatiquement.

Certificats génériques avec l'API Let's Encrypt v2

Let's Encrypt est une autorité de certification créée en avril 2016, qui fournit des certificats X.509 pour le chiffrement TLS sans frais. Ces certificats ne sont valides que pendant 90 jours, il faut donc automatiser ce processus afin d'offrir une expérience utilisateur fluide. C'est ce que nous avons fourni pendant deux ans maintenant. Dès qu'un nom de domaine est configuré sur la plateforme, son certificat est généré et renouvelé automatiquement.

Jusqu'à cette année, seuls des certificats pour des noms de domaines précis étaient disponibles. Il n'était pas possible de créer des certificats génériques couvrant tous les sous-domaines d'un nom de domaine donné (c'est-à-dire *.example.com, qui fonctionnerait pour a.example.com, b.example.com, etc).

En mars 2018, l'organisation a publié la version v2 de leur API en production, et avec elle, le support pour ces certificats génériques. L'intégration de cette nouvelle version de leur API a été déployée sur Scalingo depuis quelques mois sans aucun changement d'interface utilisateur ou d'expérience utilisateur pour nos clients. Cette intégration inclut également le support des domaines génériques. Comme cela se fait pour un domaine unique, vous n'avez qu'à déclarer un domaine générique et Scalingo construira automatiquement le certificat TLS correspondant, si la configuration DNS a été correctement effectuée (voir ci-dessous).

Avantages

Si votre application utilise beaucoup de sous-domaines différents (c'est-à-dire des applications utilisant un sous-domaine différent par client, ce qui est généralement le cas pour les fournisseurs SaaS), si vous vouliez utiliser notre intégration Let's Encrypt, vous deviez interroger notre API pour associer ou dissocier dynamiquement un domaine. La difficulté n'était pas si élevée, mais cela nécessitait un développement personnalisé et ajoutait une dépendance à la plateforme, ce qui n'était pas le plus pratique pour nos utilisateurs.

Une autre limite était les quotas de Let's Encrypt qui ne permettent pas de créer plus de 50 sous-domaines par semaine.

Aujourd'hui, pour ce type de cas d'utilisation, il suffit de créer un certificat générique et vous serez couvert pour une quantité infinie de sous-domaines.

Validation DNS

Les certificats de domaine simples étaient validés par le défi HTTP-01. Cependant, ce type de validation n'est pas disponible pour les certificats génériques. Le défi DNS-01 doit être utilisé.

Comment cela fonctionne : lorsqu'un certificat générique est demandé à Let's Encrypt en utilisant le défi DNS-01, il est nécessaire d'ajouter un champ TXT dans la zone DNS du domaine parent. Par exemple, si vous souhaitez utiliser *.example.com, Let's Encrypt s'attendra à trouver un token d'authentification précis lors de la résolution de TXT _acme-challenge.example.com

Par défaut, l'opération est manuelle : lorsque vous ajoutez *.example.com à votre application, une fois que le défi est initialisé, vous recevrez un email vous en informant et l'instruction concernant le contenu du champ TXT sera présente sur le tableau de bord, dans l'onglet Domaines/SSL. Tous les deux mois, un autre email est envoyé pour vous notifier la mise à jour de la valeur TXT afin de mettre à jour le certificat.

Cette méthode fonctionne, mais nécessite une action manuelle de votre part tous les 2 mois, ce qui peut être pénible lorsque l'on cherche à automatiser des processus. Pour résoudre ce problème, nous avons intégré plusieurs API de fournisseurs DNS, pour mettre à jour automatiquement le champ TXT de votre domaine sans aucune action manuelle.

Fournisseurs compatibles

Plusieurs fournisseurs sont pris en charge par la plateforme pour renouveler automatiquement les certificats génériques. Si le vôtre n'est pas présent, n'hésitez pas à nous contacter, si possible, nous l'ajouterons à notre pool.

Configurer l'intégration avec ces fournisseurs tiers se fait par le biais de variables d'environnement. Vous devez définir DNS_PROVIDER en fonction de celui que vous utilisez, puis les détails de configuration sont spécifiques à chacun d'eux. Trouvez plus de détails à ce sujet dans notre documentation.

La liste actuelle des fournisseurs, avec le nom que vous devez utiliser dans la variable DNS_PROVIDER :

  • AWS Route 53 : route53

  • Google Cloud Platform DNS : gcloud

  • Azure DNS : azure

  • Cloudflare : cloudflare

  • DNSimple : dnsimple

  • OVH : ovh

  • GoDaddy : godaddy

  • Gandi / Gandi v5 : gandi / gandiv5

Conclusion

Cette fonctionnalité s'inscrit dans notre volonté de propager de bonnes pratiques en matière d'hébergement web avec un impact minimal sur le devops dans la vie quotidienne des développeurs. Par défaut, un HTTPS valide doit être considéré comme obligatoire, et pouvoir le faire pour des domaines génériques facilite ce processus pour plus de types d'applications. Associé à la fonctionnalité Forcer HTTPS, vous pouvez désormais garantir que vos utilisateurs n'utiliseront jamais vos applications sans être en sécurité.

Photo par rawpixel sur Unsplash

Etienne Michon, Scalingo

Étienne Michon

Docteur en informatique, Étienne Michon occupe actuellement le poste d'ingénieur R&D chez Scalingo. Il était l'un des premiers employés de Scalingo et il contribue grandement à faire grandir ce blog grâce à ses articles techniques de qualité.

Restez informé

Recevez des articles et des mises à jour de la plateforme dans votre boîte de réception.

Prêt à déployer en toute confiance ?

Découvrez des déploiements sans temps d'arrêt, une mise à l'échelle automatique intelligente et une infrastructure entièrement gérée. Commencez à déployer vos applications sur Scalingo dès aujourd'hui.

Aucune carte de crédit requise • Déployez en quelques minutes • Annulez à tout moment

Dégradé arrière-plan section

Déployez une application ou base de données

Commencez à déployer

Rejoignez les équipes qui misent sur une plateforme conçue pour livrer rapidement, opérer sereinement, avec des valeurs européennes et un support humain.

Dégradé arrière-plan section

Déployez une application ou base de données

Commencez à déployer

Rejoignez les équipes qui misent sur une plateforme conçue pour livrer rapidement, opérer sereinement, avec des valeurs européennes et un support humain.

Dégradé arrière-plan section

Déployez une application ou base de données

Commencez à déployer

Rejoignez les équipes qui misent sur une plateforme conçue pour livrer rapidement, opérer sereinement, avec des valeurs européennes et un support humain.