在带有 k3s、cert-manager 和 traefik 的 Kubernetes 中自签名根 CA。关于常规证书的附加操作指南

主要观点:作者学习 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属性、durationrenewBefore等设置。
  • 测试证书时,需使用openssl verify命令并提供中间 CA 和根 CA 的证书文件。
  • 在 Ingress 中,annotations用于指定ClusterIssuertls部分用于配置证书相关信息。
  • 使用现有常规证书时,需将 PEM 编码的证书和私钥放置在特定文件中,创建generic秘密并在Ingress中引用。
阅读 21
0 条评论