【问题标题】:CNAME to AWS Service - Browser Not Accepting CertificateCNAME 到 AWS 服务 - 浏览器不接受证书
【发布时间】:2019-01-14 16:40:11
【问题描述】:

我正在尝试直接从浏览器访问 AWS 服务 - 特别是 SNS 服务。我希望能够将消息直接发布到 sns 主题,但使用 CNAME 记录,以便我可以控制浏览器最终转到哪个区域 (sns.mydomain.com -> sns.us-east-1.amazonaws.com | sns.eu-west-1.amazonaws.com 取决于请求者地区)。

我的问题是,如果我向我的别名端点发出 HTTPS 请求,返回的证书将不会签署到我的端点,并且浏览器将拒绝使用它。虽然我可以通过只发出 HTTP 请求来解决这个问题,但浏览器会拒绝从安全来源(通过 HTTPS 提供服务的站点)发出 HTTP 请求。

是否可以按照我尝试的方式让 CNAME 指向 AWS 服务?

最终,我试图避免将浏览器中的客户端应用程序锁定到 aws 区域。

【问题讨论】:

    标签: amazon-web-services dns amazon-sns amazon-route53


    【解决方案1】:

    是否可以按照我尝试的方式让 CNAME 指向 AWS 服务?

    没有。您遇到了 https 验证的核心功能,即证书的通用名称或 SAN(主题备用名称)必须与证书匹配。如果不是这样,HTTPS 将不会验证服务器就是他们声称的身份。

    最终,我试图避免将浏览器中的客户端应用程序锁定到 aws 区域。

    这是一个很好的目标。与其在 DNS 层这样做,为什么不创建一个端点或配置设置来提供一个或多个区域以供使用?智能客户端甚至可以在出现某些似乎是区域中断的故障的情况下遍历区域,这比在区域出现故障时仍必须修复的 CNAME 好一些。

    【讨论】:

    • 有道理。我希望 aws 在这里提供一些其他解决方案,或者一个可以自动路由的 regionless 端点。您的配置端点可以工作,但是随着请求数量的增加,这可能会抵消避免使用 api 网关所节省的所有成本。我正在考虑为区域查找客户端保留一个时区,并在每次请求之前解析该区域。它不会是 100%,但我想它会很接近
    • @micah 我不确定您对此有多深入,但这些服务端点并非设计为可定制或可互换的。此外,在其他方面相同的同时请求的签名和其他属性对于不同的区域会有所不同;在事先不知道将要发送到哪个区域的情况下,您无法签署请求。
    • @Michael-sqlbot 啊,很高兴知道。我没有尝试签署一个区域的请求并发送到另一个区域,但我想我最终会发现它。看起来这样做的唯一方法是让客户知道它想去哪个区域。其他的,你应该继续使用 api gateway
    • Lambda@Edge 比 API Gateway 便宜很多,并且有很多功能重叠......这完全取决于您的需求,但 Lambda@Edge 函数在最靠近查看器的区域执行,并且它通过process.env.AWS_REGION 公开正在处理当前请求的区域。您可以从那里做出路由决定,并从 Lambda 函数内部向 SNS 发送请求。
    猜你喜欢
    • 2014-07-07
    • 2016-08-24
    • 2012-12-04
    • 1970-01-01
    • 2016-09-16
    • 1970-01-01
    • 1970-01-01
    • 2021-10-03
    • 2018-06-12
    相关资源
    最近更新 更多