首页 文章

如何CNAME到Amazon API Gateway endpoints

提问于
浏览
31

我正在尝试在Cloudflare上设置CNAME以指向Amazon API Gateway endpoints . CNAME用于引用我的某个子域名时使用 . 网关反过来指向DigitalOcean上的服务器的IP . 我是亚马逊网络服务的新手,如果有人能够概述DNS,亚马逊网关和Cloudfront的正确配置(我认为需要将网关暴露给亚马逊外部的DNS服务器),我将不胜感激 . 任何帮助将非常感激 .

UPDATE

我已经在这方面做了一段时间而没有取得多大进展 . 有没有人知道这是否是一种可行的方法或者如何做到这一点?

UPDATE2

我想我需要将CNAME记录添加到cloudFlare并且刚刚进入重定向循环,观察:

curl -L -i -v https://sub.mydomain.com/

2 回答

  • 15

    有几个原因可以解释为什么只需将Cloudflare指向您的API网关域并将其称为一天:

    • API Gateway使用共享主机,因此它使用域名来确定要向其发送请求的API . 它无法知道 api.yourdomain.com 属于您的API .

    • API Gateway要求您使用 https ,但它使用的证书仅对默认域有效 .

    但是,有一个解决方案 . 以下是我最近设置时所遵循的步骤:

    • 从Cloudflare仪表板的加密选项卡生成原始证书 .

    • 将证书导入 us-east-1 区域中的AWS证书管理器,即使您的API位于其他区域也是如此 . 如果系统提示您输入证书链,则可以从here复制它 .

    • 在API网关控制台中添加自定义域,然后选择刚刚添加的证书 . 有关如何执行此操作的详细信息,请查看AWS support article .

    • 自定义域通常需要大约45分钟才能完成初始化 . 完成后,它将为您提供新的Cloudfront URL . 继续,确保您的API仍可通过此新网址运行 .

    • 转到Cloudflare DNS选项卡并设置指向您刚刚创建的Cloudfront URL的CNAME记录 .

    • 切换到加密选项卡并将SSL模式设置为"Full (Strict)" . 如果跳过此步骤,您将获得重定向循环 .

    而已 . 享受您的自定义域提供的全新高可用性API!

  • 28

    Set up Amazon's API Gateway Custom Domain with CloudFlare

    • 在AWS管理控制台中,转到API网关服务,然后从左侧菜单中选择 Custom Domain Names .

    • 单击 Create 按钮 .

    • 登录CloudFlare,选择您的域并打开 Crypto 选项卡

    • 转到 SSL 并将SSL模式设置为"Full (Strict)"以避免重定向循环 .

    • 转到 Origin Certificates 并单击 Create Certificate

    • 让CloudFlare生成私钥和CSR,并选择RSA作为私钥类型

    • 确保涵盖自定义API域的主机名 . (例如 api.mydomain.com . 您可以专门配置此自定义域或使用默认配置的通配符,例如* .mydomain.com .

    • 选择 PEM 作为默认选择的密钥格式 .

    • 在AWS切换到区域 US-EAST-1 并转到 Certificate Manager .

    • 单击 Import a Certificate .

    • 将证书正文从CloudFlare证书复制到证书正文,并复制到AWS管理控制台中自定义域的配置 .

    • 将私钥复制到控制台中的证书私钥字段

    • 在证书链中复制Cloudflare Origin CA - RSA Root,可以找到here .

    • 在AWS控制台中输入您的自定义域名以及证书的名称

    • 现在,将在AWS CloudFront中创建自定义域名 . 域名变为活动状态可能需要一个小时 .

    • 您需要做的下一件事是在AWS控制台中设置自定义域的映射 .

    • 最后一步是在CloudFlare中创建一个新的 CNAME Record ,以将您的域链接到CloudFront网址 . 在AWS控制台中打开自定义域的设置页面时,请复制分发域名 . 这是您在创建新 CNAME Record 时需要使用的域 .

    Source

相关问题