J'essaie de définir un CNAME sur Cloudflare pour pointer vers un point de terminaison Amazon API Gateway. Le CNAME est à utiliser pour faire référence à l'un de mes sous-domaines. La passerelle pointe à son tour vers l'IP d'un serveur sur DigitalOcean. Je suis très nouveau sur les services Web d'Amazon et j'apprécierais que quelqu'un me donne un aperçu de la configuration correcte pour le DNS, Amazon Gateway et Cloudfront (qui, je pense, est nécessaire pour exposer la passerelle aux serveurs DNS externes à Amazon). Toute aide serait très appréciée.
MISE À JOUR
J'y vais depuis un moment maintenant et je ne fais pas beaucoup de progrès. Quelqu'un a-t-il une idée s'il s'agit d'une approche viable ou comment cela pourrait être fait autrement?
PDATE2
Je pensais que je devais ajouter l'enregistrement CNAME à cloudFlare et je me suis retrouvé dans une boucle de redirection, observé par:
curl -L -i -v https://sub.mydomain.com/
Il y a plusieurs raisons pour lesquelles cela ne fonctionne pas pour simplement diriger Cloudflare vers votre domaine API Gateway et l'appeler un jour:
api.yourdomain.com
appartient à votre API.https
, mais le certificat qu'il utilise n'est valide que pour le domaine par défaut.Il existe cependant une solution. Voici les étapes que j'ai suivies lorsque j'ai récemment configuré cela:
us-east-1
région, même si votre API se trouve dans une autre région. Si vous êtes invité à entrer la chaîne de certificats, vous pouvez la copier depuis ici .C'est ça. Profitez de votre nouvelle API hautement disponible servie depuis votre domaine personnalisé!
Configurer le domaine personnalisé de la passerelle API d'Amazon avec CloudFlare
Dans votre console de gestion AWS, accédez au service API Gateway et sélectionnez Custom Domain Names
dans le menu de gauche.
Cliquez sur le bouton Create
.
Connectez-vous à CloudFlare, sélectionnez votre domaine et ouvrez l'onglet Crypto
Accédez à SSL
et définissez votre mode SSL sur "Complet (strict)" pour éviter une boucle de redirection.
Aller à Origin Certificates
et cliquez sur Create Certificate
Laissez CloudFlare générer une clé privée et une CSR et choisissez RSA comme type de clé privée
Assurez-vous que le nom d'hôte de votre domaine d'API personnalisé est couvert. (par exemple. api.mydomain.com
. Vous pouvez spécifiquement configurer ce domaine personnalisé ou utiliser un caractère générique tel que * .mydomain.com comme il est configuré par défaut.
Choisissez PEM
comme format de clé sélectionné par défaut.
Dans AWS, passez à la région US-EAST-1
et passez au Certificate Manager
.
Cliquez sur Import a Certificate
.
Copiez le corps du certificat de votre certificat CloudFlare vers le corps du certificat dans la configuration du domaine personnalisé dans AWS Management Console.
Copiez la clé privée dans le champ de clé privée du certificat dans la console
Dans la chaîne de certificats, copiez le Cloudflare Origin CA - RSA Root qui peut être trouvé ici .
Entrez votre nom de domaine personnalisé dans la console AWS et un nom pour votre certificat
Maintenant, le nom de domaine personnalisé sera créé dans AWS CloudFront. Cela peut prendre jusqu'à une heure avant que le domaine devienne actif.
La prochaine chose que vous devez faire est de configurer les mappages du domaine personnalisé dans la console AWS.
La dernière étape consiste à créer un nouveau CNAME Record
dans CloudFlare pour lier votre domaine à l'URL CloudFront. Lorsque vous ouvrez la page des paramètres de votre domaine personnalisé dans la console AWS, copiez le nom du domaine de distribution. Il s'agit du domaine que vous devez utiliser lors de la création du nouveau CNAME Record
.
Les deux réponses existantes à cette question sont correctes, mais si le problème persiste même après avoir parfaitement suivi ces instructions, essayez d'accéder aux paramètres de la passerelle API, accédez à "Nom de domaine personnalisé" et configurez les mappages de chemin de base.
Ce fut l'étape manquante qui a résolu tous mes problèmes.