AWS Api gateway绑定自定义域名

在使用API Gateway的时候需要绑定自己的域名,我这里没有和CDN联系在一起,就需要用自己的域名去做关联。本篇文章完全是入门文章,我是今天花了一下午的时间才把这个看似简单的过程给全部串在一起,大体过程如下:

准备API

1.新建一个api,这里我不做多的描述,我直接是采用官方的宠物商店的示例做的,其中要注意的是stage在测试的时候需要写成beta,把这个写好后就直接deploy api.

绑定自定义域名

2.申请https证书
因为api gateway只支持https,官方的解释为:

问:我是否可以创建 HTTPS 端点?

答:可以,通过 Amazon API Gateway 创建的所有 API 都只公开 HTTPS 终端节点。Amazon API Gateway 不支持未加密的 (HTTP) 终端节点。默认情况下,Amazon API Gateway 将内部域分配给自动使用 Amazon API Gateway 证书的 API。如果您将 API 配置为以自定义域名运行,则可以为域提供您自己的证书。

https://aws.amazon.com/cn/api-gateway/faqs/
例如我的域名为:test.ciika.com,腾讯云刚好提供了一年免费的SSL证书
q1_ink_li
申请好后,我们会得到三个文件:1_root_bundle.crt ,2_test.ciika.com.crt ,3_test.ciika.com.key
还有一种方式是采用openssl自己去生成

3.api关联域名
这一步我花了比较多的时间,一直在报错,如图:
q2
把上面得到的内容填充到上面即可,填充关系为:
1_root_bundle.crt  ->chain
2_test.ciika.com.crt ->body
3_test.ciika.com.key ->private key
点击SAVE后,会提示

Create an Alias resource record with your DNS provider to map test.ciika.com to affafa66zkqp3.cloudfront.net
Certificate name
testciika
Distribution domain name
affafa66zkqp3.cloudfront.net

DNS留着最后一步用,先来添加api mapping
q4

4.设置DNS
在腾讯云的域名解析里面,添加cname 到步骤三里面得到的DNS affafa66zkqp3.cloudfront.net
q5

到这里为止,所以的工作都到位了,在浏览器里面访问https://test.ciika.com/abc/pets
得到了我们想要的结果

[
	{
		"id": 1,
		"type": "dog",
		"price": 249.99
	},
	{
		"id": 2,
		"type": "cat",
		"price": 124.99
	},
	{
		"id": 3,
		"type": "fish",
		"price": 0.99
	}
]

 

标签: none

添加新评论