問題

問題

我目前正在實施一個私人 Docker 註冊表伺服器,nginx配置為將https流量安全地轉送至正在執行的 Docker 註冊表(即docker-compose)實例在專用網路上(已設定 DNS、DHCP)。

我的整個設定按預期工作,但必須建立自簽名證書因為我不被允許使用“讓我們加密吧”(硬性要求)。我已將該.crt檔案部署到/usr/local/share/ca-certificates網路上的所有 Ubuntu 主機上,並更新了憑證儲存(即透過sudo update-ca-certificates -f)。

但是,即使證書是“受信任的”(來自上面的步驟),證書仍然註冊為“自簽名”,並且讓 Docker 註冊表充分工作的唯一方法是建立一個文件/etc/docker/daemon.json、 包含以下內容(假設我的 Docker 註冊表實例正在registry我的lan網域的主機上運行):

{
  "insecure-registries" : [ "registry.lan:5000" ]
}

這會導致某些功能中斷(即,如果啟用“不安全註冊表”,某些外掛程式將無法運作)。


問題

我如何設定我的專用網路(即假設它大部分時間都沒有連接到互聯網)以便網路上的所有電腦「完全信任」該憑證(即該憑證在主機之間「公開信任」)本地網路)?即我可以運行什麼命令或可以調整設定檔?

這似乎是一個可能的解決方案:在我的專用網路上建立一個 CA 加伺服器金鑰。

謝謝。

答案1

將您的證書加入/usr/local/share/ca-certificates.您必須確保它已讀取其他人的 chmod 並將其相對路徑添加到/usr/local/share/ca-certificates.

假設您的憑證是/usr/local/share/ca-certificates/self-signed/yourcert.crt

你應該編輯/etc/ca-certificates.conf

sudo 編輯/etc/ca-certificates.conf

並添加其相對路徑,確切地說是相對路徑/usr/local/share/ca-certificates/

所以它應該是這樣的:

自簽名/yourcert.crt

然後運行

sudo update-ca-證書

您應該會在上面的命令輸出中看到新增了 1 個憑證。

請記住,該憑證僅在此特定主機上受信任。如果您希望它在內部受到信任,您還需要將其部署到 Docker 容器中。

相關內容