【问题标题】:Naked Domain Redirect Failing when using HTTPS SSL on Google App Engine在 Google App Engine 上使用 HTTPS SSL 时裸域重定向失败
【发布时间】:2013-07-12 10:16:11
【问题描述】:

我们有一个网站:

www.feeltracker.com

这是在 Google App Engine 上运行的

在 Google App Engine 上,我们有裸域转发设置,因此:

http://feeltracker.com

重定向到

http://www.feeltracker.com

但是,当我们尝试在 Chrome 中打开以下地址时:

https://feeltracker.com(注意 HTTPS)

我们收到带有以下消息的 Google 错误页面:

Google
404. That’s an error.

The requested URL / was not found on this server. That’s all we know.

有谁知道我们如何确保https://feeltracker.com 重定向到 www.feeltracker.com?

请注意,在 Firefox 中,我们在尝试打开 https://feeltracker.com 时会收到以下附加信息:

feeltracker.com uses an invalid security certificate.

The certificate is only valid for the following names:
*.google.com , *.android.com , *.appengine.google.com , *.cloud.google.com , *.google-analytics.com , *.google.ca , *.google.cl , *.google.co.in , *.google.co.jp , *.google.co.uk , *.google.com.ar , *.google.com.au , *.google.com.br , *.google.com.co , *.google.com.mx , *.google.com.tr , *.google.com.vn , *.google.de , *.google.es , *.google.fr , *.google.hu , *.google.it , *.google.nl , *.google.pl , *.google.pt , *.googleapis.cn , *.googlecommerce.com , *.gstatic.com , *.urchin.com , *.url.google.com , *.youtube-nocookie.com , *.youtube.com , *.youtubeeducation.com , *.ytimg.com , android.com , g.co , goo.gl , google-analytics.com , google.com , googlecommerce.com , urchin.com , youtu.be , youtube.com , youtubeeducation.com  

(Error code: ssl_error_bad_cert_domain)

请注意,我们将 Google App Engine 上的 SNI SSL 证书功能与我们上传的证书一起使用。 当我们通过http://www.digicert.com/help/ 运行 SSL 诊断时,我们会得到以下信息:

Certificate does not match name feeltracker.com


Subject *.google.com
Valid from 02/Jul/2013 to 31/Oct/2013
Issuer  Google Internet Authority


Subject Google Internet Authority
Valid from 12/Dec/2012 to 31/Dec/2013
Issuer  Equifax

知道为什么https://feeltracker.com 无法使用正确的证书,而 www.feeltracker.com 和 http://www.feeltracker.com 使用我们的 SSL 证书可以正常工作吗?

【问题讨论】:

    标签: google-app-engine ssl https forwarding


    【解决方案1】:

    2015 年 9 月 16 日更新

    看来这现在可以按照 Forum postIssue 10802 工作

    以下以前适用的信息...


    目前不支持。 naked domain redirect 是一种仅适用于 http 的解决方法,您可能会注意到需要将特定 IP 地址放入 DNS 中,这与 ghs.googlehosted.com 的方法和 IP 地址不同。

    这似乎表明它是 Google 基础架构的不同部分,它们尚未设法使它们保持一致或协同工作。我还没有看到有关他们何时解决此问题的任何详细信息,因此可能需要等待很长时间。例如Related post from 2009

    Naked domain support 存在“已确认”问题,因此当该问题得到修复后,此问题可能也已解决。

    由于 Google 不会在他们的裸域重定向器上正确地提供您的证书,所以现在我看到了以下选项:

    • 制作/提供您自己的反向代理(Apache httpd、varnish 等)或使用反向代理服务(例如CloudFlare)并将您的裸域指向那里。您将 SSL 安装在反向代理上,客户端将在那里连接您的裸域(没有证书错误),并且您将所有流量代理到您的真实站点。它可能会造成单点故障和成本,具体取决于您的使用情况。

    • 租一个便宜的 VPS 来安装 Web 服务器、证书和重定向脚本到https://www.feeltracker.com。在 DNS 中,将您的裸域映射到该服务器。它可以是一个非常便宜的 linux 服务器,因为重定向的要求非常低。

    • 查找支持 https 并允许您上传证书的域重定向服务。遗憾的是我不知道。

    • 使用 VIP(虚拟 IP)SSL 并在 DNS 中为您的裸域配置它。我还没有测试过自己,但它似乎应该可以工作,尽管我确实找到了一条旧评论here,它可能不会。有人测试过吗?注意但是据我所见,DNS 条目的 TTL 仅为 300(5 分钟)并且 Google 不建议这样做,因此即使它确实有效,您也可能需要一些脚本来更新您的 DNS 条目,因为很有可能它不时变化。如果它确实有效,那么像DNSSimple 这样的 DNS 提供商有一个 API,所以它是可能的。

    可能第二个选项最适合您的情况,因为您似乎并不介意裸域(这对许多人来说是个问题)。

    我最近发现了一个很好的例子:https://khanacademy.org/ 他们似乎按照上面的第二个选项使用 Amazon EC2 主机。

    https://khanacademy.org/ Resolving khanacademy.org... 107.20.223.238 
    Connecting to khanacademy.org|107.20.223.238|:443... connected. 
    WARNING: cannot verify khanacademy.org’s certificate, issued by “/C=US/ST=Arizona/L=Scottsdale/O=GoDaddy.com, Inc./OU=http://certificates.godaddy.com/repository/CN=Go Daddy Secure Certification Authority/serialNumber=07969287”:   Unable to locally verify the issuer’s authority. WARNING: certificate common name “*.khanacademy.org” doesn’t match requested host name “khanacademy.org”. 
    HTTP request sent, awaiting response... 301 Moved
    Permanently Location: https://www.khanacademy.org/ [following]
    https://www.khanacademy.org/ Resolving www.khanacademy.org... 
    72.14.249.132 Connecting to www.khanacademy.org|72.14.249.132|:443... connected. 
    
    whois 107.20.223.238
    OrgName:        Amazon.com, Inc.
    OrgId:          AMAZO-4
    Address:        Amazon Web Services, Elastic Compute Cloud, EC2
    

    截至 2014 年 4 月 12 日,Google 似乎取得了一些进展,现在允许映射非 Google Apps 域(请参阅issue 8517),尽管 SSL 似乎还不适用于该方法(请参阅 issue 10794 进行跟踪) .

    【讨论】:

    【解决方案2】:

    我发现最好的免费 SSL 重定向服务是 CloudFlare。让它工作:

    1. 添加您的域并将您的名称服务器切换到 CloudFlare(注册过程将引导您完成)
    2. 一旦添加到 CloudFlare 设置并下到 SSL。将设置更改为“完全 SSL(严格)”,这要求您在重定向到的子域上拥有有效证书(SNI 工作正常)。
    3. 返回您的网站列表,再次选择域,然后在选项转到页面规则上。添加将 https://yourdomain.com/* 重定向到 https://www.yourdomain.com/$1 的“转发”规则(将 www 替换为任何子域),确保重定向设置为 301。
    4. 保存您的设置,然后坐等一切传播。

    完成。为您的裸域提供免费且安全的 SSL 重定向。

    【讨论】:

    • 试试这个并等待它现在传播 :) 快速问题 - 使用这种方法,您是否从 DNS 区域中删除 A 记录?如果不是,您将 A 记录设置为什么?
    • 你可以让它指向应用引擎,但它不应该有太大的区别,因为重定向规则是事先应用的
    • 为我工作...顺便说一句,如果使用完整 SSL(非严格),那么您可以使用自签名证书,使整个事情完全免费和安全:D
    • 不再免费 ^
    【解决方案3】:

    GAE 不正式支持裸域。您所看到的是 GAE 的限制,您没有做错任何事情。 https://developers.google.com/appengine/kb/general#naked_domain

    【讨论】:

    • 解决方法是将裸域转发到完整域:support.google.com/a/answer/2518373?hl=en 不幸的是它不能使用 HTTPS。
    • 是的,这仅适用于 HTTP。使用 HTTPS,您会收到 SSL 错误。
    • 请注意,这个答案现在已经过时了。请参阅答案中引用的链接。
    【解决方案4】:

    显然不支持 HTTPS 上的裸域重定向。官方文档中没有提到这一点。如果您查看支持文档,您会在屏幕截图中看到裸重定向明确指出 http://

    从 Google Groups 线程来看,SSL 裸域重定向是不可能的:herehere

    【讨论】:

      【解决方案5】:

      我不得不将我的域管理和域名服务器从 GoDaddy(G-Suite) 切换到 Cloudflare 来解决这个裸域重定向问题。我按照 Parkers 的说明使用了免费的 Cloudflare 帐户,在我关闭重定向规则然后重新打开后它就可以工作了。我从 Full(strict) 切换回 Full,因为您现在需要付费才能上传自己的 SSL 证书。我暂时对来自 Cloudflare 的共享通用 SSL 证书感到满意。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-01-21
        • 1970-01-01
        • 2012-05-05
        • 2014-01-12
        • 2015-11-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多