首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >AWS网关应防止使用TLS v1

AWS网关应防止使用TLS v1
EN

Stack Overflow用户
提问于 2017-10-03 18:51:37
回答 6查看 13.8K关注 0票数 9

参考AWS Cloudfront文件,AWS支持TLS v1.0、v1.1、v1.2。

但是,我希望将加密协议限制为TLSV1.1和v1.2,用于我的Gateway API。我在哪里配置这个?我没有看到任何cloudfront发行版的API。网关资源页没有指定安全协议的选项。

我的API使用自定义域在生产中运行了两年。是否知道如何将我的API仅限于API网关中的TLS V1.1和V1.2协议?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2019-07-12 05:12:33

如果任何人看到这一点,现在可以在API:https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-custom-domain-tls-version.html中为您的自定义域设置最少的TLS版本1.2。

票数 1
EN

Stack Overflow用户

发布于 2019-02-06 00:31:21

我刚刚在这方面做了大量的工作,通过大量的尝试和错误,我可以记录下我认为目前对此的最佳解决方案。早在2017年10月,suman的答案是最好的解决方案,但它确实有一个局限性,而且AWS也是从那时开始发展起来的。

那么限制是什么呢?

如果将Lambda与API一起使用并删除自定义域名,则手动创建CloudFront发行版和关联Lambda函数需要一个特定的Lambda版本号。也就是说,它不支持别名。在CI/CD中,版本号可以不断更改,这是有问题的。但是,API网关自定义域名基础路径映射确实支持别名,因此继续使用这些别名可能会更好。

那么AWS是如何进化的呢?

截至2017年11月,API网关支持在自定义域名中创建区域终结点。这些端点不会创建CloudFront发行版,从而优化了将您自己的CloudFront发行版放置在它们前面的策略,从而防止使用TLSV1.0。

那我该怎么安排呢?

我使用的步骤(通过控制台)如下所示。请注意,您可能需要更改一些设置以支持您的特定应用程序。就本文档而言,假设您的api名为api.example.com。

  1. 在API中,编辑自定义域名,添加区域配置,选择证书并单击Save。注意:对于区域性API,您需要使用来自与API相同区域的ACM证书。更多信息在这里:https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-regional-api-custom-domain-migrate.html
  2. 复制新创建的区域终结点的目标域名。(如d-abcdefg123.execute-api.us-east-1.amazonaws.com)
)
  3. 在路由53或您的DNS提供程序中,将API的映射从边缘优化的d-abcdefg123.execute-api.us-east-1.amazonaws.com).
目标域名更改为新创建的区域端点目标域名(即CloudFront )
  4. DNS更改传播后,编辑自定义域名并单击x图标删除边缘优化终结点。这将使您能够使用API的相同CNAME创建一个新的CloudFront发行版,而不会阻塞.
。
  5. 在API中,创建一个新的自定义域名,域名= Regional api.example.com,Endpoint Configuration =Regional,然后选择ACM证书。单击Save,然后编辑并按照当前API添加基本路径映射,然后单击Save。复制新创建的区域终结点的目标域名。(如d-xyzabcd456.execute-api.us-east-1.amazonaws.com)
)
  6. 在路由53或您的DNS提供程序中,创建一个新的CNAME记录,将区域-api.example.com映射到新创建的区域端点目标域名。(Ie d-xyzabcd456.execute-api.us-east-1.amazonaws.com)
)
  7. 在CloudFront中,使用以下设置创建一个新发行版:



原产地设置:

代码语言:javascript
运行
复制
  Origin Domain Name = regional-api.example.com
   

  After entering the above the following hidden fields should then be displayed:   

  Origin SSL Protocols = TLSv1.2 & TLSv1.1

  Origin Protocol Policy = HTTPS Only

默认缓存行为设置:(这些值是调用API以正常工作的应用程序所需的)


代码语言:javascript
运行
复制
  Viewer Protocol Policy = Redirect HTTP to HTTPS
    

  Allowed HTTP Methods = GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE

  Cached HTTP Methods = OPTIONS

  Cache Based on Selected Request Headers = Whitelist
    

  Whitelist Headers = Authorization   


  Object Caching = Customize  

  Minimum TTL = 0

  Maximum TTL = 0

  Default TTL = 0 

  Forward Cookies = All
      

  Query String Forwarding and Caching = Forward all, cache based on all
    

  Smooth Streaming = No

  Restrict Viewer Access (Use Signed URLs or Signed Cookies) = No
    

  Compress Objects Automatically = No 
   

  Lambda Function Associations = None

 

分发设置:

代码语言:javascript
运行
复制
  Price Class = Use All Edge Locations
   

  AWS WAF Web ACL = None
     

  Alternate Domain Names (CNAMEs) = test-api.example.com
     

  SSL Certificate = Custom SSL Certificate (example.com)
   

  Custom SSL Client Support = Only Clients that Support Server Name Indication (SNI)
    

  Security Policy = TLSv1.1_2016 (recommended)
   

受支持的HTTP版本= HTTP/2、HTTP/1.1、HTTP/1.0

  1. 在等待CloudFront发行版创建完成时(平均40分钟),在53路或您的DNS提供程序中创建一个新的CNAME记录映射测试api.example.com到新创建的CloudFront域名(例如d123abcdefg.cloudfront.net)
。
  2. 一旦发行版创建完成,您的应用程序就可以对照test-api.example.com
进行测试了。
  3. 如果测试都很好,那么将新CloudFront的备用域名(CNAME)更新为be = api.example.com。(注意-这不会使它“活动”,下面的DNS更改是必需的)

  4. 完成发行版更新后(平均40分钟),然后在53号路由或您的DNS提供程序中,更新api.example.com到新创建的CloudFront域名(即d123abcdefg.cloudfront.net)
的CNAME记录映射
  5. 如果一切正常,现在可以删除路由53 / DNS CNA测试- api.example.com记录加上删除api.example.com API网关自定义域名.
。
  6. 对于加分,如果使用53号公路,建议使用A和AAAA记录别名,而不是CNAME的53号路线以上的步骤(我已经做过)。这稍微降低了成本,在一定程度上隐藏了底层的CloudFront发行版,并且还启用了IPv6支持。

我希望这会有所帮助!

票数 9
EN

Stack Overflow用户

发布于 2017-10-18 14:31:20

为了让带有额外云前端发行版的Gateway API工作,我们需要

  1. 从AWS控制台,在API下转到自定义域名并删除映射的条目。
  2. 创建一个新的cloudfront发行版

云锋设置

  • 源域名作为您的Gate端点https://abcdfefg.execute-api.us-east-1.amazonaws.com
  • 查看器协议策略仅限于HTTPS
  • 将SSL协议原名为TLSv1.2,TLSv1.1 (未选中TLSv1)
  • 备用域名下添加CNAME条目以引用自定义域名
  • 在完成上述更改之后,访问https上的自定义域名将强制执行Cloudfront发行版中定义的TLS安全设置。
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46551473

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档