0

我有一个 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 Console 配置的更新信息。我在控制台中的应用程序设置包含以下内容:服务:默认,api 自定义域设置:mycustomdomain.com SSL 上传:ultrahdlivewallpaper.com(不是通配符版本),api.ultrahdlivewallpaper.com(无法为自定义域启用,无匹配)

更多细节:问题是当我同时映射 ultrahdlivewallpapers.com 和 api.ultrahdlivewallpapers.com 时,它们都映射到默认服务。我想要api。指向 API 服务。如果我只映射ultrahdlivewallpapers.com,那允许我在api子域访问api服务,但是api SSL不能应用于api。子域,因为它没有被列为子域。

在此处查看屏幕截图

2017 年 7 月 24 日更新:在通过 GAE 控制台尝试了几个场景后,我认为这是 App Engine 设置的限制。我们为 ultrahdlivewallpapers.com 设置了一个自定义域,并为此域启用了 SSL 证书。域指向默认服务。我们有第二个服务设置,称为 API。Google 对任何服务设置的路由规则是通过 HTTP://service-id.custom-domain,在我们的例子中是 api.ultrahdlivewallpapers.com。但是,当我为 api 子域上传 SSL 时,控制台找不到匹配的域,因为 api 子域不是通过控制台指定的。现在,如果我将 api.ultrahdlivewallpapers.com 设置为自定义域,我就可以为 api 子域启用 SSL。然后问题变成 api 子域现在指向默认服务而不是 api 服务。如果我删除 api 映射,我可以再次浏览到 api 服务,但没有 HTTPS!我不相信没有为所有子域启用通配符 SSL 的情况下正确设置此设置的方法。如果我遗漏了什么,请告诉我。我已经通过控制台尝试了我能想到的一切。谢谢。

4

2 回答 2

1

本质上,您不一定需要“通配符”证书。但是,您确实需要获得涵盖所有子域的证书。例如:

mycustomdomain.com
www.mycustomdomain.com
api.mycustomdomain.com

这是一个标准的解决方案,并不难做到。Certbot(让我们加密)使它变得容易。

于 2017-07-22T04:23:56.747 回答
0

如果您选择获取通配符证书安装非常简单:

  1. 您在开发者控制台中上传证书(在 App Engine -> 设置 -> SSL 证书 -> 上传新证书)。可能需要一些努力,另请参阅Google App Engine SSL with Let's Encrypt "could not be inserted"

  2. 一旦它在证书表中可见,您可以单击其名称,您将最终进入证书编辑屏幕,您可以在其中选择它适用的自定义(子)域(从应用程序中映射的所有自定义域的列表中) ,看起来像这样:

在此处输入图像描述

注意:这些是相应的自定义域映射:

在此处输入图像描述

  1. 如果您有另一个应用程序(在同一管理员帐户下)也映射到同一域的子域,您也可以以类似的方式激活其上的证书(当您切换应用程序时,控制台会自动在列表中显示证书,无需再次上传)。
于 2017-07-22T04:50:16.873 回答