我有一个GAE应用程序设置为使用自定义域名,我们称之为mycustomdomain。这个裸域可以通过HTTP和HTTPS正常工作。我还有一个名为api的服务,可以通过转到http://api.mycustomdomain.com(自定义域约定)成功访问它。
但是,我无法通过HTTPS访问api服务。我为mycustomdomain.com上传了一个SSL,但是我尝试通过HTTPS访问api服务时遇到错误(无法访问网站)。我的问题是,我是否需要购买wildcard.mycustomdomain.com SSL才能通过HTTPS访问api服务?我没有太多处理SSL证书和GAE自定义域的经验,因此非常感谢任何帮助。谢谢!
编辑:GCP控制台配置的更新信息。 我在控制台中的应用设置包含以下内容: 服务:默认,api 自定义域名设置:mycustomdomain.com 已上传SSL:ultrahdlivewallpaper.com(不是通配符版本),api.ultrahdlivewallpaper.com(无法启用自定义域名,无法匹配)
更多细节:问题是当我映射ultrahdlivewallpapers.com和api.ultrahdlivewallpapers.com时,它们都映射到默认服务。我想要api。指向API服务。如果我只映射ultrahdlivewallpapers.com,这允许我访问api子域的api服务,但是api SSL不能应用于api。子域名,因为它未被列为子域名。
07/24/17更新:我认为在通过GAE控制台尝试多个方案后,这是App Engine设置的限制。我们为ultrahdlivewallpapers.com设置了自定义域,并为此域启用了SSL证书。域指向默认服务。我们有第二个名为API的服务。 Google针对任何服务设置的路由规则是通过HTTP:// service-id.custom-domain,在我们的例子中是api.ultrahdlivewallpapers.com。但是,当我上传api子域的SSL时,Console无法找到匹配的域,因为未通过控制台指定api子域。现在,如果我将api.ultrahdlivewallpapers.com设置为自定义域,我就可以为api子域启用SSL。然后问题变成api子域现在指向默认服务而不是api服务。如果我删除api映射,我可以再次浏览到api服务,但没有HTTPS!如果没有为所有子域启用通配符SSL,我认为没有办法正确设置此设置。如果我遗漏任何东西,请告诉我。我已经通过控制台尝试了所有我能想到的东西。谢谢。
答案 0 :(得分:1)
您本身并不一定需要“通配符”证书。但是,您需要获得涵盖所有子域的证书。例如:
mycustomdomain.com
www.mycustomdomain.com
api.mycustomdomain.com
这是一个标准的解决方案,并不难做到。 Certbot(让我们加密)让事情变得简单。
答案 1 :(得分:0)
如果您选择获取通配符证书,则安装非常简单:
您在开发者控制台中上传证书(在App Engine中 - >设置 - > SSL证书 - >上传新证书)。可能需要一些努力,另请参阅Google App Engine SSL with Let's Encrypt "could not be inserted"。
一旦在证书表中可见,您可以点击其名称,然后您将进入证书编辑屏幕,您可以在其中选择适用的自定义(子)域(从应用程序中映射的所有自定义域列表中,如下所示:
注意:这些是相应的自定义域映射: