使用HTTPS SSL在Google App Engine上进行裸域重定向失败

35

我们有一个网站:

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 证书?
5个回答

28

更新于2015年9月16日

这似乎现在可以按照论坛帖子问题10802的方式运作。

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


目前不支持。裸域名重定向仅适用于http,您可能会注意到需要将特定IP地址放入DNS中,这些IP地址与ghs.googlehosted.com的方法和IP地址不同。

这似乎表明这是Google基础设施的不同部分,他们尚未成功使它们一致或协同工作。我还没有看到任何关于他们何时解决此问题的详细信息,因此可能要等很长时间。例如,2009年的相关帖子

裸域名支持存在“已确认”的问题,因此在解决此问题后,可能也会解决此问题。

由于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应用程序域(参见issue 8517),尽管该方法的SSL似乎尚未起作用(请参见issue 10794以跟踪该问题)。

这里是最新问题的认可,即SSL上的裸域 - https://code.google.com/p/googleappengine/issues/detail?id=10802 - Chris Fremgen

9
我发现最好的免费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记录设置为什么? - davidkomer
1
你可以将其指向应用引擎,但这并不重要,因为重定向规则无论如何都会先被应用。 - Parker
对我有用...另外,如果使用Full SSL(非严格模式),那么可以使用自签名证书,使整个过程完全免费和安全:D - davidkomer
不再免费 - B-Tron of the Autobots
这仍然是免费的,您可以在免费类别下创建3个页面规则。 - Sagar S.

2

我不得不将我的域名管理和名称服务器从GoDaddy(G-Suite)切换到Cloudflare,以解决这个裸域重定向问题。我按照帕克的指示使用了免费的Cloudflare账户,当我关闭并重新打开重定向规则后,它就起作用了。由于现在需要支付才能上传自己的SSL证书,所以我从Full(strict)切换回Full。目前我对来自Cloudflare的共享通用SSL证书感到满意。


1

解决方法是将裸域名转发到完整域名:https://support.google.com/a/answer/2518373?hl=en 不幸的是,它不支持HTTPS。 - Peter Knego
1
是的,那只适用于HTTP。使用HTTPS会出现SSL错误。 - dragonx
2
请注意,此答案已过时。请参阅答案中引用的链接。 - speedplane

1

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

根据Google Groups线程的判断,SSL裸域名重定向是不可能的:这里, 这里


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接