簡體   English   中英

您如何在 Openshift 中集中為您的應用程序提供 TLS 證書?

[英]How do you supply your Applications with TLS Certificates centrally in Openshift?

我目前正在努力完成以下任務。 我不想在我的模板中包含我的 TLS 證書,因為

  1. 我不想在仍然簽入模板的同時簽入代碼管理中的憑據

  2. 我正在使用具有相同證書的多個應用程序,我不想僅僅因為我可能分發另一個證書而更新存儲庫

現在我的方法是這樣的。 我正在將 Jenkins 用於我的構建管道。 我有一個僅用於證書管理的 Repo。 它將在更新時運行並將證書和私鑰分發到各種集群上的 Openshift Secrets。

運行應用程序的模板時,我正在從密鑰中檢索信息並在路由中設置值。 這就是事情變得棘手的地方。 我只能使用單行值,因為

  1. Openshift 模板不接受帶有 oc 進程的多行參數
  2. Secrets 不會存儲多行值

所以解決方案似乎很簡單。 只需使用 \\n 存儲證書並將其設置在 Route 中即可。 但是 Openshift 不接受導致錯誤的單行證書

spec.tls.key:無效值:“編輯的密鑰數據”:tls:在 PEM 中找到證書而不是私鑰的密鑰

現在的解決方案可能是在處理之前將證書作為多行直接插入模板文件並將其應用於集群,但這對我來說似乎有點麻煩。 所以我的問題是

您如何為您的應用程序集中管理 TLS 證書並在您應用的模板中設置它們的正確性?

秘密可以是多行。 您可以使用證書文件創建機密,並將該機密作為文件掛載到您的容器中。 請參閱此處了解如何從文件創建機密:

https://kubernetes.io/docs/concepts/configuration/secret/

使用 openshift 命令行工具代替 kubectl。

對於證書,有一個叫做 cert-manager 的東西:

https://docs.cert-manager.io/en/latest/

這將根據需要生成證書。 你可能想看看。

為了集中管理應用程序的 TLS 證書,您可以創建一個通用機密並通過卷安裝使用它。

暫無
暫無

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

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