Score:0

Kubernetes Nginx Ingress พร้อม Cert Manager และ letsencrypt ไม่อนุญาตให้ใช้สัญลักษณ์แทนในชื่อโดเมน

ธง ru

ฉันมีคลัสเตอร์ Kubernetes ที่โฮสต์เองด้วย Nginx Ingress Cert-manager ยังทำงานบนคลัสเตอร์ ซึ่งฉันพยายามรับใบรับรอง SSL ที่ถูกต้องโดยใช้ Letsencrypt ทุกอย่างใช้งานได้ และฉันได้รับใบรับรองที่ถูกต้องสำหรับ example.com www.example.com หรือ app1.example.com แต่ไม่ใช่สำหรับไวด์การ์ดทั่วไป *.example.com หากฉันพยายามป้อนไวด์การ์ดใน ingress ภายใต้ sec.tls.hosts ไม่ว่าจะด้วยวิธีการใดๆ ก็ตาม จะไม่มีการสร้างใบรับรองใดๆ ให้ฉัน ฉันได้รับผลลัพธ์สำหรับ

kubectl รับใบรับรอง

ชื่อพร้อมอายุความลับ
tls-test-cert เท็จ tls-electi-cert 20 ชม

kubectl รับคำขอใบรับรอง

ชื่อที่ได้รับการอนุมัติ ปฏิเสธพร้อม ผู้ออกคำขอ อายุ
tls-test-cert-8jw75 True False ปล่อยให้ระบบจัดเตรียมการเข้ารหัส: serviceaccount: cert-manager: cert-manager 18m

kubectl อธิบาย CertificateRequest

[...]
สถานะ:
  เงื่อนไข:
    เวลาเปลี่ยนผ่านล่าสุด: 2022-02-27T13:54:38Z
    ข้อความ: คำขอใบรับรองได้รับการอนุมัติโดย cert-manager.io
    เหตุผล: cert-manager.io
    สถานะ: จริง
    ประเภท: อนุมัติ
    เวลาเปลี่ยนผ่านล่าสุด: 2022-02-27T13:54:38Z
    ข้อความ: กำลังรอการออกใบรับรองจาก order gateway/tls-test-cert-8jw75-1425588341: "pending"
    เหตุผล: รอดำเนินการ
    สถานะ: เท็จ
    ประเภท: พร้อม
เหตุการณ์:
  พิมพ์อายุเหตุผลจากข้อความ
  ---- ------ ---- ---- -------
  cert-manager.io ปกติ 18m cert-manager คำขอใบรับรองได้รับการอนุมัติโดย cert-manager.io
  คำสั่งปกติสร้างผู้จัดการใบรับรอง 18m สร้างเกตเวย์ทรัพยากรคำสั่งซื้อ/tls-test-cert-8jw75-1425588341
  คำสั่งปกติรอดำเนินการ 18m cert-manager กำลังรอการออกใบรับรองจาก order gateway/tls-test-cert-8jw75-1425588341: ""

Nginx Ingress ของฉัน: (ฉันเปลี่ยนโดเมนเป็น example.com สำหรับโพสต์นี้)

---
รุ่น api: networking.k8s.io/v1
ชนิด: ทางเข้า
ข้อมูลเมตา:
  ชื่อ: การจัดการทดสอบ
  เนมสเปซ: เกตเวย์
  คำอธิบายประกอบ:
    kubernetes.io/ingress.class: nginx
    cert-manager.io/cluster-issuer: "letsencrypt-staging"
    nginx.ingress.kubernetes.io/force-ssl-redirect: "จริง"
    nginx.ingress.kubernetes.io/ssl-redirect: "จริง"
    nginx.ingress.kubernetes.io/backend-protocol: "HTTP"
ข้อมูลจำเพาะ:
  ชื่อคลาส ingress: nginx
  tls:
  - ชื่อลับ: tls-test-cert
    เจ้าภาพ:
      -example.com
      - '*.example.com'
  กฎ:
    - โฮสต์: example.com
      http:
        เส้นทาง:
          - เส้นทาง: /
            pathType: คำนำหน้า
            แบ็กเอนด์:
              บริการ:
                ชื่อ: ทดสอบเกตเวย์
                ท่า:
                  จำนวน: 80
    - โฮสต์: '*.example.com'
      http:
        เส้นทาง:
          - เส้นทาง: /
            pathType: คำนำหน้า
            แบ็กเอนด์:
              บริการ:
                ชื่อ: ทดสอบเกตเวย์
                ท่า:
                  จำนวน: 80

ผู้ออก: (ฉันได้แก้ไขอีเมลของฉันที่นี่)

apiVersion: cert-manager.io/v1
ชนิด: ผู้ออก
ข้อมูลเมตา:
  ชื่อ: Letsencrypt-staging
  เนมสเปซ: cert-manager
ข้อมูลจำเพาะ:
  จุดสุดยอด:
    เซิร์ฟเวอร์: https://acme-staging-v02.api.letsencrypt.org/directory
    อีเมล: *******
    privateKeySecretRef:
      ชื่อ: Letsencrypt-staging
    นักแก้ปัญหา:
      - http01:
          ทางเข้า:
            คลาส: nginx

พร็อกซีย้อนกลับของฉัน (เกตเวย์ทดสอบ) ใช้งานได้อย่างแน่นอนและส่งต่อโดเมนย่อยทั้งหมดไปยังเว็บไซต์ของฉัน ขอขอบคุณล่วงหน้าสำหรับแนวคิดเกี่ยวกับสิ่งที่อาจเป็นสาเหตุนี้

in flag
สวัสดี TaLeDa ยินดีต้อนรับสู่ SF เท่าที่ทราบ [เราไม่สามารถออกใบรับรองไวด์การ์ดโดยใช้ตัวยืนยัน http01](https://cert-manager.io/docs/faq/sync-secrets/#serving-a-wildcard-to-ingress-resources-in -different-namespaces-default-ssl-certificate) (เนื่องจากจะต้องมีการร้องขอ http ไม่จำกัดเพื่อพิสูจน์โฮสต์ `*` ทั้งหมด) คุณจะมีความสุขมากขึ้นในการขอใบรับรอง [`ตัวแทน: true`](https://cert-manager.io/docs/reference/api-docs/#acme.cert-manager.io/v1.Challenge) จากนั้น เพียงแนบไปกับ Ingress ของคุณ ขอให้โชคดี!
TaLeDa avatar
ru flag
ขอบคุณที่ช่วยแก้ปัญหาของฉัน ขอให้เป็นวันที่ดี.
in flag
จากนั้น โปรด[เพิ่มและยอมรับคำตอบของคุณเอง](https://serverfault.com/help/self-answer) เพื่อให้ผู้อื่นได้รับประโยชน์จากประสบการณ์ของคุณ นั่นคือประเด็นทั้งหมดของไซต์นี้
Score:0
ธง ru

ขอบคุณสำหรับความช่วยเหลือ ฉันสามารถแก้ปัญหาของฉัน:

โดยพื้นฐานแล้ว ฉันต้องหาวิธีใหม่เพราะไม่สามารถออกใบรับรองไวด์การ์ดกับ http01 ได้ (ดูที่นี่: https://cert-manager.io/docs/configuration/acme/) หลังจากการค้นคว้าเล็กน้อย ฉันได้ข้อสรุปว่าการใช้ตัวแก้ปัญหา dns01 เหมาะสมที่สุด สามารถดูเอกสารได้ที่นี่: https://cert-manager.io/docs/configuration/acme/dns01/

เนื่องจากการกำหนดค่าของ dns01 ขึ้นอยู่กับผู้ให้บริการ DNS ของคุณเป็นอย่างมาก ฉันจะไม่เผยแพร่โซลูชันของฉันที่นี่ แต่สามารถค้นหาการกำหนดค่าที่มีประโยชน์ได้อย่างง่ายดายด้วยเอกสารประกอบ

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา