主要观点:作者学习 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) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。