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

Gau*_*rma 31 ssl https google-app-engine forwarding

我们有一个网站:

www.feeltracker.com

这是在Google App Engine上运行的

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

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.
Run Code Online (Sandbox Code Playgroud)

有谁知道我们如何确保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)
Run Code Online (Sandbox Code Playgroud)

请注意,我们使用上传的证书在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
Run Code Online (Sandbox Code Playgroud)

任何想法为什么https://feeltracker.com无法使用正确的证书,而www.feeltracker.com和http://www.feeltracker.com与我们的SSL证书一样工作?

Mar*_*yle 26

2015年9月16日更新

看来这可能现在按照论坛帖子问题10802工作

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


目前它不受支持.该裸域重定向仅适用于HTTP一种变通方法,你可能会发现,你需要特定的IP地址将被放置在您的DNS为从方法和IP地址ghs.googlehosted.com不同.

这似乎表明它是谷歌基础设施的不同部分,他们尚未设法使它们保持一致或协同工作.我还没有看到他们什么时候解决这个问题的任何细节,所以这可能是一个漫长的等待.例如2009年的相关帖子

Naked域支持存在"已确认"问题,因此当问题得到解决时,此问题也可能得到解决.

由于Google无法在裸域重定向器上正确提供您的证书,因此现在我看到以下选项:

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

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

  • 查找支持https的域重定向服务,并允许您上载证书.可悲的是,我不知道.

  • 使用VIP(虚拟IP)SSL并在DNS中为您的裸域配置它.我没有测试过自己,但它似乎应该可以工作,虽然我在这里找到一个旧的评论,它可能不会.有人测试过吗?但是请注意,据我所知,DNS条目的TTL只有300(5分钟)而且谷歌没有提供建议,所以即使它确实有效,你也可能需要一些脚本来更新你的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
Run Code Online (Sandbox Code Playgroud)

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


小智 8

我发现最好的免费SSL重定向服务是CloudFlare.为了让它运作:

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

完成.裸域的自由安全SSL重定向.