創建存放cloudflare api token的Secret

01-cloudflare-token.yaml

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

創建 issuer

02-cloudflare-ClusterIssuer.yaml

apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
  name: letsencrypt-dns01
spec:
  acme:
    privateKeySecretRef:
      name: letsencrypt-dns01
    server: https://acme-v02.api.letsencrypt.org/directory
    solvers:
    - dns01:
        cloudflare:
          email: [email protected] # 替換成你的 cloudflare 郵箱賬號,API Token 方式認證非必需,API Keys 認證是必需
          apiTokenSecretRef:
            key: api-token
            name: cloudflare-api-token-secret # 引用儲存 cloudflare 認證資訊的 Secret

自簽Certificate

03-cloudflare-Certificate.yaml

apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
  name: cert-yourdomain-com
  namespace: default
spec:
  dnsNames:
  - cert.yourdomain.com # 要簽發證書的域名
  issuerRef:
    kind: ClusterIssuer
    name: letsencrypt-dns01 # 引用 ClusterIssuer,指示採用 dns01 方式進行校驗
  secretName: cert-yourdomain-com # 最終簽發出來的證書會儲存在這個 Secret 裡面

創建ingress

04-cloudflare-ingress.yaml

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: tls-test-ingress
  annotations:
    # add an annotation indicating the issuer to use.
    cert-manager.io/cluster-issuer: letsencrypt-dns01
spec:
  ingressClassName: cilium
  rules:
  - host: cert.yourdomain.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: nginx-service
            port:
              number: 80
  tls:
  - hosts:
      - cert.yourdomain.com
    secretName: cert-yourdomain-com

Cloudflare創建一筆要產生TLS的DNS

訪問url 檢查tls是否正常

 

 

By tony

自由軟體愛好者~喜歡不斷的思考各種問題,有新的事物都會想去學習嘗試 做實驗並熱衷研究 沒有所謂頂天的技術 只有謙虛及不斷的學習 精進專業,本站主要以分享系統及網路相關知識、資源而建立。 Github http://stnet253.github.io

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料