簡體   English   中英

在關鍵雲代工廠中使用受信任的 SSL 證書和 spring 引導

[英]Use trusted SSL certificate with spring boot in pivotal cloud foundry

我是 SSL 證書主題的新手,我想安裝我購買的 SSL,這樣當用戶進入我的網站時,他們不會看到這里的不受信任的證書警告是我到目前為止所做的步驟

  1. 使用 keytool 創建了一個 p12 文件
  2. 從步驟 1 中的文件創建了一個 csr 文件
  3. 將 csr 上傳到我的 ssl 供應商並通過他們對我的域的驗證后,下載以下文件:.crt、.ca-bundle、.p7b 文件

我將所有文件(包括我生成的文件)放在資源目錄中並添加了以下屬性

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 引導配置上做些什么

唯一可行的方法是使用 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. Map 使用您在步驟 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 通常是 go 的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM