创建 Issuer
创建 Issuer https://todoit.tech/k8s/cert/#%E5%88%9B%E5%BB%BA-issuer
export CLOUDFLARE_EMAIL="user@example.com"export CLOUDFLARE_TOKEN="JetH3-LDZZwk2mJ0kiPpE"
# 1. cloudflare 添加 DNS 记录. 映射到对应的服务器# 2. 前往个人资料 -> API 令牌, 使用编辑区域 DNS 模版, 创建一个 token。# 3. 测试curl -X GET "https://api.cloudflare.com/client/v4/user/tokens/verify" \ -H "Authorization: Bearer ${CLOUDFLARE_TOKEN}" \ -H "Content-Type:application/json"
# 将得到的 token,保存到 .env 文件中,并将 .env.prod 添加到 .gitignore 中
cat > .env.prod <<EOFapi-token=${CLOUDFLARE_TOKEN}EOF
# 使用 Kustomize 来管理该 token。cat > kustomization.yaml <<EOFresources: - letsencrypt-issuer.yamlnamespace: cert-managersecretGenerator: - name: cloudflare-api-token-secret envs: - .env.prod # token 就存放在这里,这个文件不会被提交到 Git 仓库中generatorOptions: disableNameSuffixHash: trueEOF
# 使用 Kustomize 来生成一个名为 cloudflare-api-token-secret 的 Secret, 该 Secret 被下面的清单使用
cat >letsencrypt-issuer.yaml<<EOFapiVersion: cert-manager.io/v1kind: ClusterIssuermetadata: name: letsencrypt-dns01spec: acme: privateKeySecretRef: name: letsencrypt-dns01 server: https://acme-v02.api.letsencrypt.org/directory solvers: - dns01: cloudflare: email: ${CLOUDFLARE_EMAIL} # 替换成你的 cloudflare 邮箱账号 apiTokenSecretRef: key: api-token name: cloudflare-api-token-secret # 引用保存 cloudflare 认证信息的 SecretEOF
# 检查kubectl kustomize ./
# 创建 issuerkubectl apply -k ./
# 查看 Let't Encrypt 注册状态kubectl get clusterissuerkubectl describe clusterissuer letsencrypt-dns01