首页 > 解决方案 > Node.js 上的多域路由和 SSL

问题描述

我有一个服务于 http 请求的 Node.js 应用程序。用户可以注册,创建一个帐户,当他们这样做时,我会生成一个子域供他们使用。例如用户名.example.com。这是相当直接的做法,可以使用单个证书通过 ssl 提供服务。

我想为用户提供使用自己的域的选项。从 Node.js 这也不是太难。我可以检查主机名并从那里查找帐户详细信息。

不过,我正在努力研究如何为这些自定义域生成 ssl。

现在,我的应用程序在 Heroku 上运行,但我也在 Google 的 App Engine 上进行了临时构建,所以我不直接处理 Web 服务器。事实上,我什至不知道它是什么,它可能是 Nginx 或 Apache。

为了保持对话的重点,让我们留下来,我想坚持使用应用引擎。当用户添加自己的域时,我将其存储在数据库中。我将如何为此自动生成 SSL?

标签: node.jssslroutinggoogle-cloud-platform

解决方案


我为此想到了一般步骤,但是有一个我不确定是否可以解决的问题。步骤将是:

  1. 将用户的域映射到您的应用程序并配置 DNS 记录。您可以使用以下gcloud命令执行此操作:此映射自定义域文档页面中概述的步骤和一般描述(请注意,您可以在框中的控制台GCloud之间切换)。也可以在 Cloud Console 中执行此操作,但是正如您所提到的,您对编程方法感兴趣。如果您更喜欢从 API 配置自定义域,App Engine Admin API中存在相同的功能,其 REST 资源用于域映射。

可能的showstopper(来源:映射自定义域):

通过网站管理员中心验证您是域的所有者

  1. 之后,App Engine 会提供一个托管证书,然后处理更新/撤销它。使用 SSL 保护自定义域仍处于测试阶段,但它提供了您需要的功能。

推荐阅读