Comment utiliser CNAME pour Amazon API Gateway Endpoint

j'essaie de définir un CNAME sur Cloudflare pour pointer vers un terminal de L'API Amazon. L'enregistrement CNAME est pour une utilisation lorsque l'on se réfère à l'un de mes sous-domaines. La passerelle à son tour pointe vers L'IP d'un serveur sur DigitalOcean. Je suis très nouveau dans 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 grandement apprécier.

UPDATE

j'y travaille depuis un moment maintenant et je ne fais pas beaucoup de progrès. Quelqu'un a une idée si c'est une approche viable ou sinon, comment il pourrait être fait?

UPDATE2

je pensais que j'avais besoin d'ajouter l'enregistrement CNAME pour cloudFlare et juste fini dans une boucle de redirection, observé par:

curl -L -i -v https://sub.mydomain.com/
29
demandé sur John Rotenstein 2016-04-20 10:55:07

2 réponses

il y a plusieurs raisons pour lesquelles cela ne fonctionne pas de simplement pointer Cloudflare vers votre domaine API Gateway et de l'appeler un jour:

  • API Gateway utilise l'hébergement partagé donc il utilise le nom de domaine pour déterminer à quelle API envoyer les requêtes. Il n'a aucun moyen de savoir que api.yourdomain.com appartient à votre API.
  • API Gateway exige que vous utilisiez https, mais le certificat qu'il utilise est uniquement valable pour le domaine par défaut.

il y a une solution, cependant. Voici les étapes que j'ai suivi quand j'ai récemment mis ceci:

  1. générer un certificat d'origine à partir de l'onglet crypto du tableau de bord Cloudflare.
  2. importer le certificat à AWS Certificate manager dans le us-east-1 région, même si votre API est située dans une autre région. Si on vous demande la chaîne de certificats, vous pouvez la copier à partir de ici.
  3. ajouter votre domaine personnalisé dans la console de la passerelle API et sélectionner le certificat que vous venez d'ajouter. Vérifiez L'AWS article de soutien pour plus d'informations sur la façon de le faire.
  4. il faut habituellement environ 45 minutes au domaine personnalisé pour terminer l'initialisation. Une fois que c'est fait, il vous donnera une nouvelle URL Cloudfront. Assurez-vous que votre API fonctionne toujours avec cette nouvelle URL.
  5. allez à L'onglet Cloudflare DNS et configurez un enregistrement CNAME pointant vers L'URL Cloudfront que vous venez de créer.
  6. passez à l'onglet crypto et réglez votre mode SSL à " Full (Strict)". Si vous ignorez cette étape, vous obtiendrez une boucle de redirection.

C'est ça. Profitez de votre nouvelle API très disponible servie à partir de votre domaine personnalisé!

26
répondu BonsaiOak 2017-08-23 21:13:29

configurer le domaine personnalisé de la passerelle API D'Amazon avec CloudFlare

  1. dans votre console de gestion AWS, allez au service API Gateway et sélectionnez Custom Domain Names dans le menu de gauche.

  2. cliquez sur le Create bouton.

  3. connectez-vous à CloudFlare, sélectionnez votre domaine et ouvrez le Crypto onglet

  4. SSL et paramétrez votre mode SSL à "Full (Strict)" pour éviter une redirection en boucle.

  5. Origin Certificates et cliquez sur Create Certificate

  6. laissez CloudFlare générer une clé privée et un CSR et choisissez RSA comme type de clé privée

  7. assurez-vous que le nom d'hôte de votre domaine API personnalisé est couvert. (par exemple,api.mydomain.com. Vous pouvez configurer spécifiquement ce domaine personnalisé ou utiliser un caractère générique *.mydomain.com comme il est configuré par défaut.

  8. Choisir PEM comme le format de clé qui est sélectionné par défaut.

  9. dans les SSFE, passez à la région US-EAST-1 et goto Certificate Manager.

  10. Cliquez sur Import a Certificate.

  11. Copiez le corps de certificat de votre certificat CloudFlare au corps de certificat à la configuration du domaine personnalisé dans la Console de gestion AWS.

  12. copier la clé privée dans le champ "Certificat de clé privée" console

  13. dans la copie de la chaîne de certificats la racine CA - RSA D'origine Cloudflare qui peut être trouvée ici.

  14. Saisissez votre nom de domaine personnalisé dans la console AWS et un nom pour votre certificat

  15. maintenant le nom de domaine personnalisé sera créé dans AWS CloudFront. Il peut prendre jusqu'à une heure avant que le domaine devient actif.

  16. La prochaine chose que vous devez faire est mis en place les correspondances du domaine personnalisé dans la Console AWS.

  17. la dernière étape est de créer un nouveau CNAME Record dans CloudFlare pour lier votre domaine à L'url CloudFront. Lorsque vous ouvrez la page Paramètres de votre domaine personnalisé dans la console AWS, Copiez le nom de domaine Distribution. C'est le domaine que vous devez utiliser lors de la création du nouveau CNAME Record.

Source

15
répondu Tyler Rafferty 2017-09-05 20:04:46