3

比如说,我在 url 上托管在 cloudfoundry 上的 war 文件中有一个 Java Web 应用程序mycoolapp.cfapps.io,它运行良好。我现在需要将它托管在自定义域上mycoolapp.com,并且我已经购买了该域。

  1. 在我自己的域上托管它的过程是什么?我可以通过 Cloudfoundry 进行吗?
  2. 我的应用需要 ssl。目前https://mycoolapp.cfapps.io工作。但我需要它在我的自定义域上工作。这将涉及什么?(我想我需要为我的域获得证书,但接下来呢?)
  3. 在应用程序中,一些机密信息嵌入在 url 中(无法更改),因此我还需要确保提供者无法知道访问的 url(除了基本 url)。这可以做到吗?如果没有,有什么替代方案?
4

1 回答 1

3
  1. 可以通过为您的应用创建CNAME 记录来完成(请参阅此处的 Azure 示例)。不幸的是,Cloud Foundry (CF) 似乎还不支持它。据我了解,这是由于 CF 路由器通过解析 URL 并根据主机名(mycoolapp在您的情况下)确定路由来确定确切的虚拟机(因此,IP)。理想情况下,CF 中有一个界面,您可以在其中为您的应用注册所有 CNAME 别名(如为Azure 网站实现的那样)

  2. 如果启用 CNAME 记录,它也适用于 HTTPS,因为它基本上解析 IP 地址。肯定会有一个界面供您为您的域上传证书。这会导致下面提到的有关 SSL 终止的问题。但是,据我所知,CF 还不支持它。

  3. 这是对 CF 的 run.pivotal.io 部署的内部结构的一个问题。从概念上讲,HTTPS 会在加密 URL 参数时发挥作用。但是我认为SSL 在路由器上终止(因为证书是为 *.cfapps.io 颁发的 - 所有应用程序的单一证书 - 您可以在浏览器通过 HTTPS 连接到您的应用程序时检查它)。这可能意味着内部 CF 可以访问您请求的所有数据,并导致我关于 CF 中 SSL 终止的问题,目前没有答案。希望 CF 将提供一种方法来终止处理请求的最终服务器上的 SSL。

更新:

Cloud Foundry 提出了自己的方式来支持自定义域 -通过使用 CloudFlare 代理。如果使用代理解密您的数据的事实对您来说没问题,那么可以使用它。

于 2013-08-14T13:57:44.357 回答