node.js - Node.js 上的多域路由和 SSL
问题描述
我有一个服务于 http 请求的 Node.js 应用程序。用户可以注册,创建一个帐户,当他们这样做时,我会生成一个子域供他们使用。例如用户名.example.com。这是相当直接的做法,可以使用单个证书通过 ssl 提供服务。
我想为用户提供使用自己的域的选项。从 Node.js 这也不是太难。我可以检查主机名并从那里查找帐户详细信息。
不过,我正在努力研究如何为这些自定义域生成 ssl。
现在,我的应用程序在 Heroku 上运行,但我也在 Google 的 App Engine 上进行了临时构建,所以我不直接处理 Web 服务器。事实上,我什至不知道它是什么,它可能是 Nginx 或 Apache。
为了保持对话的重点,让我们留下来,我想坚持使用应用引擎。当用户添加自己的域时,我将其存储在数据库中。我将如何为此自动生成 SSL?
解决方案
我为此想到了一般步骤,但是有一个我不确定是否可以解决的问题。步骤将是:
- 将用户的域映射到您的应用程序并配置 DNS 记录。您可以使用以下
gcloud
命令执行此操作:此映射自定义域文档页面中概述的步骤和一般描述(请注意,您可以在框中的控制台和GCloud之间切换)。也可以在 Cloud Console 中执行此操作,但是正如您所提到的,您对编程方法感兴趣。如果您更喜欢从 API 配置自定义域,App Engine Admin API中存在相同的功能,其 REST 资源用于域映射。
可能的showstopper(来源:映射自定义域):
通过网站管理员中心验证您是域的所有者
- 之后,App Engine 会提供一个托管证书,然后处理更新/撤销它。使用 SSL 保护自定义域仍处于测试阶段,但它提供了您需要的功能。
推荐阅读
- python - 在 Django 代码中的哪里放置代码断开信号并进行猴子修补?
- java - 如何从 Google Cloud Storage 下载文件并在 Spring 控制器中返回
- google-cloud-platform - Cloud Scheduler 可以由用户触发吗?
- reactjs - 模拟单击一行以在反应中加载动态组件
- c++ - 在官方 ZeroMQ 多线程示例的修改版本中崩溃
- javascript - 将Json转换为父子关系结构
- c - 使用 GSList 作为 GHashTable 值的不同方法
- amazon-web-services - 从不同 VPC 上的 SQS 事件触发 lambda
- java - 如何在日期对象 JAVA 中将“AM”更改为“PM”
- c - 如何使用 CMake 计算 C 项目的构建时间