使用CloudFlare自动签发和续期域名证书

首先我们需要去CloudFlare上去获取签发证书的token,点击您的头像➡️配置文件➡️API令牌,然后点击创建令牌,使用API 令牌模板,使用"编辑区域 DNS"或者创建自定义令牌这两个模板即可。

202608051623193923548318.png

创建好以后会自动生成一个token,这个token你需要记录好。
创建证书所需的记录token的Secret

apiVersion: v1
kind: Secret
metadata:
  name: cloudflare-token-secret
  namespace: cert-manager
type: Opaque
stringData:
  api-token: xxx

创建证书签发者,我们使用clusterissuer进行全局的证书签发

apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
  name: letsencrypt-cloudflare-prod
spec:
  acme:
    server: https://acme-v02.api.letsencrypt.org/directory
    email: <你的收件邮箱,证书到期会有邮件通知>
    privateKeySecretRef:
      name: letsencrypt-prod-account-key
    solvers:
    - dns01:
        cloudflare:
          apiTokenSecretRef:
            name: cloudflare-token-secret
            key: api-token

创建域名证书,clusterIssuer自动签发tls

apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
  name: cloudflare-ca
  namespace: higress-system
spec:
  dnsNames:
  - "sulao.cn"
  - '*.sulao.cn'
  issuerRef:
    kind: ClusterIssuer
    name: letsencrypt-cloudflare-prod
  secretName: cloudflare-ca-tls

部署完成以后我们可以查看证书状态是否是True,如果是Ture的话他会自动创建tls,名字就是上述中写的cloudflare-ca-tls

另外我们需要更改域名,直接修改Certificate资源apply就生效,不需要改ClusterIssuer,不用手动操作Secret,注意不要频繁去做这个操作,频繁去申请证书可能导致请求被封禁

另外一下是一些插件的排查问题的命令

查看Certificate状态

kubectl -n higress-system get certificate cloudflare-ca
kubectl -n higress-system describe certificate cloudflare-ca

查看Order资源

kubectl -n higress-system get order
kubectl -n higress-system describe order <order-name>

查看 challenge 状态(DNS01 核心)

kubectl get challenges -A
kubectl -n higress-system describe challenge <challenge-name>

后续如果有需要使用到域名的Ingress规则,直接在Ingress规则中进行这个证书的引用即可。

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: sulao-ingress
  namespace: higress-system
spec:
  tls:
  - hosts:
    - api.sulao.cn
    secretName: cloudflare-ca-tls  # 直接引用你生成的泛域名secret
  rules:
  - host: api.sulao.cn
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: sulao-svc #业务的svc
            port:
              number: 80

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://sulao.cn/post/1183

评论列表

0%