我们可以在许多自主创建的 VPS 上使用 TLS 吗?

Possible to us TLS on many autonomously created VPSs?

有没有什么 autonomous/programmatic 方法可以创建许多 VPS/cloud 服务器来安全地提供一个网页,这些网页将被现成的浏览器接受,而无需为每个 VPS?我正在尝试找到一种快速、安全且完全自主的解决方案,但它完全难倒了我。

以编程方式创建许多服务器很容易——例如。使用 API 创建 DigitalOcean 水滴。我还了解如何以编程方式设置 Web 服务器并使用 Let's Encrypt 使用 TLS 保护它。让我感到困惑的部分是如何为任意数量的 VPS 自动设置 TLS。 我目前 tried/though 的:

  1. 新 VPS 的 IP 地址的自签名证书将不会被浏览器接受而没有瘟疫和死亡警告
  2. Let's Encrypt 不支持裸 IP 地址,仅支持域名,而且我找不到任何提供裸 IP 证书且自动且廉价验证的提供商
  3. 我可以购买一个通配符证书并为每个 VPS 创建一个新的(随机的?)子域,但是 DNS 记录可能需要几个小时才能传播到我的最终用户
  4. 我可以提前设置几百个子域,将 IP 地址指向它们,然后使用通配符证书保护它们,但这会非常昂贵,比如每个 IP 地址每月 4 美元来保留它
  5. 我可以使用像 DigitalOcean 的浮动 IP 之类的东西,并在创建时将它们分配给 VPS,但同样,每个浮动 IP 的保留费用为每月 4 美元
  6. 我可以使用带有 DDNS 指向的预设置子域的通配符证书,并在创建新 VPS 时更新 DDNS。但同样,据我了解 DDNS,传播可能需要数小时或至少数分钟。
  7. 我只能使用 TLS 保护一台服务器,然后通过该服务器代理来自外部世界的流量,然后使用自签名证书到 VPSs。这可能会起作用,但会增加延迟和性能瓶颈。该应用程序已经需要高性能和低延迟,因此这没有吸引力。

有什么我没有想到的吗?有人有开箱即用的想法吗? 有知道如何立即将新子域分配给新 IP 地址的 DNS 或 DDNS 专家吗?你能避免随机子域的缓存延迟吗?是否有颁发自动裸 IP 地址证书的证书颁发机构?

谢谢!

背景: 我的客户销售一款只能在 Linux 上运行的软件,他们想让他们的客户偶尔使用该软件在云中从任何浏览器。我的计划是编写一个服务于 Web 界面的云管理程序,接受客户使用该软件的请求,使用运行该软件的图像启动一个新的 DigitalOcean Droplet,将客户的浏览器连接到 VNC-to-websocket代理,然后在会话结束时销毁液滴。

要使基础架构自动化,请尝试 terraform 目前可能是最一致且 "easy" 创建所有实例的方法。

现在要在所有 domain/subdomain 上使用 TLS,最简单的解决方案可能是将其委托给 CloudFlare(考虑到您的应用是网页 HTTP/HTTPS):

Cloudflare-issued SSL certificates cover the root-level domain (eg- example.com) and one level of subdomains (eg- *.example.com)

如果您需要获取证书并稍后将其用于本地 Web 实例或 SMTP 服务器,您仍然可以使用 lestencrypt but do the verification via DNS, this way, you don't need a web server and can "programmatically" manage your certificates, the how you deploy them or put them in your instances is another topic, maybe for that "ansible”可以帮助自动化该过程。