主要观点:作者学习 Kubernetes 几周后,能实现多种功能,如托管多个域、密码保护和高可用集群等,虽看似重复发明轮子,但对用户无变化。作者用 Kubernetes / k3s v1.30.2 + k3s1 版本,因集群本地且域名提供商无相关插件,选择使用自签名证书权威(CA)安装 cert-manager,介绍了创建自签名根 CA、中间 CA 及测试证书的过程,还提到使用现有常规证书的方法,最后通过 Ingress 为 echo 应用自动颁发证书并在浏览器中信任。
关键信息:
- 可实现托管多个域、密码保护和高可用集群。
- 使用
Helm安装cert-manager,添加Helm仓库、安装cert-manager并设置相关参数。 - 利用
nameConstraints限制根证书范围以降低风险,介绍了相关RFC及指南。 - 创建自签名根 CA 和中间 CA 的 YAML 文件及操作步骤,包括描述资源、应用、查询等。
- 测试证书的步骤,包括创建测试证书的 YAML 文件、应用及使用
openssl验证证书链。 - 通过 Ingress 为
echo应用自动颁发证书,包括编辑Ingress文件、应用及查看证书状态等。 - 介绍使用现有常规证书的方法,创建
generic秘密并在Ingress中引用。
重要细节: - 作者的 Kubernetes 集群本地不可从互联网访问,无法使用
HTTP-01挑战和域名提供商的DNS-01挑战插件,所以选择自签名 CA。 - 在创建自签名根 CA 时,需注意
isCA属性、duration和renewBefore等设置。 - 测试证书时,需使用
openssl verify命令并提供中间 CA 和根 CA 的证书文件。 - 在 Ingress 中,
annotations用于指定ClusterIssuer,tls部分用于配置证书相关信息。 - 使用现有常规证书时,需将 PEM 编码的证书和私钥放置在特定文件中,创建
generic秘密并在Ingress中引用。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。