API网关通过域名来定位到一个唯一的API分组,再通过Path+HTTP Method确定唯一的API。您可以将自己的HTTPS的域名绑定到API网关的API分组上并为该域名导入SSL证书,即可实现HTTPS的域名访问API。
注意事项
独立域名需要满足以下几点:
中国内地Region的独立域名需要在阿里云备案或者将备案接入阿里云。
独立域名要CNAME解析到该分组的二级域名上,然后操作绑定。
独立域名在API网关上没有被别的用户绑定过,否则绑定操作需要走验证流程,才能成功绑定。若该分组下的API需要支持HTTPS协议,您还需要为该独立域名导入或者上传SSL证书。
API网关为每个分组默认提供了公网二级域名,如果客户端直接调用API分组提供的公网二级域名,将会受到每天1000次调用的限制(海外Region及中国香港限制100次/天)。您在正式生产环境开放API时,需要为API分组绑定独立域名才可正常使用,不受此项限制。
方案概览
本文将HTTPS的域名绑定到API网关的分组上并为此域名上传SSL证书,分为以下步骤:
域名解析
公网域名解析
内网域名解析
登录API网关控制台,在左侧导航栏选择API管理 > 分组管理并在页面选择地域。
在分组列表页面,单击目标分组,进入分组详情页面,在基本信息处找到这个分组对应的API网关提供的内网VPC域名。
登录云解析 DNS控制台,在左侧导航栏选择内网DNS解析 (PrivateZone) ,在内网DNS解析 (PrivateZone)页面,选择页面右上角管理配置模式,在用户域名栏单击添加域名(Zone)。
在添加内置权威域名 (Zone)弹框中,输入内置权威域名 (Zone)名称和选择阿里云VPC内网,单击确定。
说明此处的内置权威域名 (Zone)填写API网关分组所要绑定的自定义的域名(私有域名),即您想要在VPC环境内专门为其设置内网DNS解析 (PrivateZone)的域名名称。
单击添加的内置权威域名 (Zone)名称,进入解析记录页面,单击添加记录,为该私有域名添加CNAME解析记录,在添加记录弹框中记录类型选择CNAME,主机记录填写域名前缀,记录值填写获取到的内网VPC域名,单击确定。
Zone关联VPC后,在被关联VPC内的ECS上,您的Zone(私有域名)将按照PrivateZone解析记录被解析,其公网解析记录则会被覆盖。
VPC环境外,该Zone的公网解析记录不受影响。通过为Zone添加PrivateZone解析记录,可以防止记录为空的Zone将需要使用的公网解析覆盖掉,造成异常。更多详情可参考开通PrivateZone文档。
域名绑定
登录API网关控制台,在左侧导航栏选择API管理 > 分组管理并在页面选择地域。
在分组列表页面,单击需要绑定域名的分组,进入分组详情页面,在页面独立域名处单击绑定域名按钮。
在域名绑定弹框中,配置参数如下并单击确定。
配置项目
描述
域名
填写要绑定的域名。
环境
指的是域名绑定的环境,分别如下:
指定为测试环境(TEST) :仅支持调用测试环境API。
指定为预发环境(PRE ):仅支持调用预发环境API。
指定为线上环境(RELEASE):仅支持调用线上环境API。
默认(使用X-Ca-Stage确定环境):以上三种环境均可调用,调用时在请求的Header添加X-Ca-Stage参数指定调用的环境。
网络类型
公网类型仅支持通过公网调用API。内网类型仅支持通过内网调用API。
内网类型域名不进行域名所有权校验,若与实例内其他分组绑定域名冲突,将绑定失败。
域名绑定成功后,不支持修改网络类型,若配置有误,可以删除域名重新绑定。
域名绑定常见问题
域名绑定失败,需要怎样处理?
要绑定的域名已经在API网关被当前用户绑定到了当前实例的其他分组上,或者和当前用户已经绑定的其他域名有范围冲突(指泛域名和单域名之间存在的覆盖关系),此时用户需要从原来的分组上解绑该自定义域名,才能重新在当前分组上绑定该域名。
要绑定的域名已经在API网关被其他用户绑定到了该用户名下的分组上,或者和当前用户已经绑定的其他域名有范围冲突(指泛域名和单域名之间存在的覆盖关系),此时用户必须通过域名所有权确认中提到的方法证明此自定义域名的所有权才能成功绑定。
上传域名SSL证书
绑定好域名后,就可以使用绑定的域名以HTTP方式访问分组下的所有API了,但是如果想以HTTPS的方式访问分组下的API,需要将您的域名证书上传到刚才绑定的域名下才行。API网关提供两种域名绑定方式,自动从阿里云证书服务导入证书和手动上传您在其他证书服务提供商获取到的证书。
生成域名SSL证书
下面简单介绍下在阿里云的证书服务生成一个个人测试证书(免费版)的流程:
进入阿里云证书服务控制台。
在证书购买页面完成证书的购买与域名的绑定,请参考证书的SSL证书快速上手。证书申请完成后,回到API网关控制台对应分组的分组详情页面。
导入或上传域名SSL证书
购买好证书或者准备好证书文件后,就可以在API网关控制台将证书导入或者上传到API网关的分组的绑定的域名下了,下面是证书导入和上传流程。
导入证书
如果您是在阿里云的云盾证书服务中购买了证书,可以直接将证书导入到API网关的分组域名下:
登录API网关控制台,在左侧导航栏选择API管理 > 分组管理并选择地域。
在分组列表页面单击目标分组进入分组详情页面,在页面的独立域名处看到所有绑定好域名列表,选择需要导入的证书对应的域名SSL证书一列,单击选择证书链接。
在选择证书弹框中,单击查找证书,等所有属于您的证书查询出来后,选择一个对应的域名证书,单击同步证书按钮,完成证书的同步。
上传证书
如果您的证书不是在阿里云购买的,也可以将您的域名证书上传到API网关。具体流程如下:
登录API网关控制台,在左侧导航栏选择API管理 > 分组管理并选择地域。
在分组列表页面单击目标分组进入分组详情页面,在页面的独立域名处看到所有绑定好域名列表,选择需要导入的证书对应的域名SSL证书一列,单击选择证书链接。
在选择证书弹框中,单击手动添加证书链接。
在创建证书页面后,按照页面提示填写证书内容并上传,单击确定。
上传证书成功后,可以在独立域名栏看到域名后选择证书链接变成了更新证书,证书上传成功后,就可以使用HTTPS协议的域名了。