AWS 雲地圖證書
我真的很喜歡 AWS Cloud Map(AWS 中的服務發現)。它與 AWS DNS 集成,使服務發現變得非常簡單。只需註冊一個服務實例,您就可以通過正常的 DNS 解析發現該服務。例如
curl http://hello-world.production
,將連接到 hello-world 服務的生產實例。偉大的。我的問題是我想使用 HTTPS 保護我的微服務之間的流量。但是,我將如何為 hello-world.production 之類的東西生成證書/密鑰?私有 CA 是唯一的選擇嗎?我知道 AWS 對此提供支持,但我是否需要將我的私有 CA 的根證書注入我的所有微服務?理想情況下,我會避免執行私有 CA。如果這是最好的方法,有沒有辦法確保我所有的內部服務都擁有 CA 的根證書?
謝謝!
是的。在您的情況下,CA 必須是私有的。
如果你考慮一下,我也可以有一個名為
hello-world.production
. 由於公共 CA 將位於大多數/所有客戶端的信任錨儲存中,如果公共 CA 向您和我頒發證書,則連接的客戶端將不知道他們正在連接到誰。公共 CA 只能向全球唯一的實體頒發證書。為此,商業 CA 通常依賴 DNS 或電子郵件地址的全球唯一性(取決於證書的使用)。另一方面,您的私有 CA 只會在您的客戶端的信任錨儲存中,並且它只會向您的
hello-world.production
. 如果您的客戶以某種方式嘗試連接到我的實例,它將失敗,因為我沒有您的客戶信任的私有 CA 頒發的證書。有很多方法可以將證書分發到客戶端的信任錨儲存:
- Windows 有組策略;
- 將其添加到 Docker 映像中;
- 與 Microsoft SCCM 一起分發;
- 使用開源配置管理工具(Ansible/Puppet/Chef 等)進行分發;
您如何分配取決於您的方案。
如果您不想執行私有 CA 的麻煩,您可以考慮託管私有 CA。AWS、Digicert、Entrust 和 Sectigo 提供這項服務是有償的。