什么是 cert-manager ?
cert-manager 是一个在 k8s 上管理证书和证书签发的应用, 还可以自动在过期前更新证书。
支持 Let's Encrypt, HashiCorp Vault, and Venafi 和私有的 PKI。
从上图可以看出, cert-manager 需要先注册签发着(Issuers), 会按需(Certificates CRD)分配签发证书给使用者, 每个Certificates 会生成对应的 Secrets 用来保存生成的证书。 使用者挂载该 Secrets 后使用。
Issuers 分为 Issuers 和ClusterIssuers, 作用范围分别是namespace 和整个集群。
Certificates 是用来描述你要请求的证书的信息的。 记录了你要请求那个 Issuer 来使用何种方式签发你要的证书。
根据具体的签名方式, 还会有 Order、challenge 等CRD对象, 用来描述证书签发过程中的中间对象。
自签名PKI是什么 ?
自签名PKI(Public Key Infrastructure)是一种用于建立安全通信的加密技术。与传统的PKI不同,自签名PKI不依赖于第三方机构来颁发数字证书,而是由通信双方自行生成和管理各自的数字证书和私钥。这种方法虽然不需要付费申请证书,并且可以实现相对简单,但是需要更多的安全性保障,例如建立密钥管理和证书撤销机制,以确保通信安全。
自签名 PKI 过程是怎么样的 ?
-
生成自签名根证书 首先需要生成一个自签名根证书,这个证书是整个 PKI 系统的根证书,也是信任链的根节点。生成自签名根证书时需要填写以下信息:公钥、私钥、证书的有效期、证书颁发者的信息、证书的主题信息等。
-
配置证书链 将自签名根证书和其他证书绑定成证书链,形成信任链。证书链可以通过操作系统的证书存储管理工具来创建和管理。
-
生成证书 生成需要的证书,比如网站证书、客户端证书等。这些证书都是基于根证书生成的,可以使用 openssl 工具来生成。
-
配置信任链 将证书绑定到证书链上,形成完整的信任链。需要将信任链配置到服务器、客户端等应用程序中,使其能够识别并信任证书。
-
部署和管理证书 将证书部署到相应的设备上,并定期更新证书。证书的管理包括续期、吊销和更新证书,确保证书不会过期或失效。
-
完成自签名 PKI 部署 完成以上步骤后,自签名 PKI 就可以部署到生产环境中,实现加密通信、身份验证、数字签名等安全功能。密钥管理和证书管理是 PKI 的核心内容,需要加强对其的保护和管理。