【问题标题】:Use trusted SSL certificate with spring boot in pivotal cloud foundry在关键的 Cloud Foundry 中使用受信任的 SSL 证书和 Spring Boot
【发布时间】:2020-10-15 00:14:32
【问题描述】:

我是 SSL 证书主题的新手,我想安装我购买的 SSL,这样当用户进入我的网站时,他们就不会看到不受信任的证书警告,这是我到目前为止所做的步骤

  1. 使用 keytool 创建了一个 p12 文件
  2. 从步骤 1 中的文件创建了一个 csr 文件
  3. 已将 csr 上传到我的 ssl 供应商,并在通过他们对我的域的验证后,下载以下文件:.crt、.ca-bundle、.p7b 文件

我将所有文件(包括我自己生成的文件)都放在了resources目录下,并添加了以下属性

server.ssl.key-store:classpath:myFile.p12
server.ssl.key-store-password:some_pass
server.ssl.keyStoreType:PKCS12
server.ssl.keyAlias:someAlias

我后来运行了以下命令:keytool -importcert - 尝试将我从 ssl 供应商处获得的文件导入到我创建的文件 (.p12)

我创建了我的 jar 并将其上传到关键云代工厂,但我仍然看到无效的证书消息

我不知道我是否需要在关键平台或 Spring Boot 配置上做一些事情

【问题讨论】:

    标签: spring-boot ssl cloud-foundry


    【解决方案1】:

    唯一可行的方法是使用 TCP 路由。使用 Cloud Foundry 上的标准 HTTP 路由,流量首先到达负载均衡器,然后到达 Gorouter。 TLS 终止将在那里发生,不是在您的应用程序中。如果您使用 TCP 路由,这将在 TCP 级别进行负载平衡,并允许您的应用程序直接执行 TLS 终止。

    也就是说,你真的不想那样做。 TCP 路由不太可能允许您选择端口 443,因为一个端口只能分配给一个应用程序。这意味着只有一个使用 TCP 路由的应用程序可以使用端口 443。此外,在大多数情况下,平台运营商只允许 TCP 路由的高编号端口,这意味着没有人能够选择 443。长话短说,你不想要您的用户必须以 https://www.example.com:47385 的身份访问您的网站,因此您不需要 TCP 路由。


    要使用标准 HTTP 路由正确设置此功能,您需要与您的平台运营团队合作。您需要一起执行以下操作:

    1. 获取您要使用的域。
    2. 获取负载平衡器。这需要配置为将流量路由到基础中的 Gorouter。您可以跳过此步骤并使用现有的负载均衡器,但这会对下面的第 6 步产生影响[1]。
    3. 为您的域配置 DNS,以便它在步骤 #2 中路由到负载平衡器。
    4. 在 CF 中将域添加为私有域或共享域。
    5. 使用您在第 3 步中创建的域映射到您的应用程序的路由。
    6. 将您的 TLS 证书和密钥添加到负载平衡器 [1]。

    完成所有这些操作后,流向您域的流量将解析为负载平衡器的 IP。你用户的浏览器会向 LB 发出 HTTPS 请求,它会终止 TLS(如果是 HTTP/layer-7 LB),并转发到 Gorouter(如果有 TCP/layer-4 LB,则 TLS 在此处终止),然后转发到您的应用程序(基于您映射的路线)。

    您的应用程序需要查看 x-forwarded-forx-forwarded-proto 标头以确认请求是否通过 HTTPS 传入,因为它不会直接终止 TLS。

    [1] - 这意味着证书的安装方式。使用单独的 LB,您将证书添加到其中并完成。如果您尝试重用平台 LB,则需要将证书添加到现有的证书列表中。此外,如果您的平台运营团队使用 TCP/layer-4 负载均衡器,则 TLS 终止不会发生在 LB,它会发生在 Gorouter。这意味着您必须将您的 TLS 证书加载到 Gorouter 中,这需要 Bosh 部署并且需要更多工作。修改平台 LB 也存在导致基础崩溃的错误风险。出于这些原因以及更多原因,为您的应用添加单独的 LB 通常是可行的方法。

    【讨论】:

      猜你喜欢
      • 2018-10-15
      • 2016-06-01
      • 2013-12-06
      • 1970-01-01
      • 1970-01-01
      • 2015-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多