Score:0

GitLab Runner สำหรับเซิร์ฟเวอร์ GitLab ที่มีใบรับรองที่ลงนามโดย CA ล้มเหลวด้วย: ใบรับรองที่ลงนามด้วยตนเองในห่วงโซ่ใบรับรอง

ธง md

บริษัทของฉันเปลี่ยนผู้ออกใบรับรอง (เป็น CA เดียวและตอนนี้เรามี CA หลักและ CA ระดับกลาง) ฉันเปลี่ยนการกำหนดค่าในอินสแตนซ์ GitLab สำเร็จและย้ายไปที่ตัวรัน (ซึ่งอยู่ใน Ubuntu 18.04.5 LTS) ฉันพยายามทำตาม เอกสาร GitLab ปราศจากความสำเร็จ.

ฉันทำตามแนวทางเริ่มต้น ที่นี่ ที่ระบุว่า "ค่าเริ่มต้น - อ่านใบรับรองระบบ" ดังนั้นฉันจึงเพิ่มใบรับรอง (CA และระดับกลาง) ลงในรายการ Ubuntu CA ดูเหมือนว่าทุกอย่างจะทำงานได้เพราะตัวเรียกใช้ปรากฏใน GitLab

ฉันเริ่มงานและได้รับ:

ทำงานกับ gitlab-runner 11.5.0 (3afdaba6)
  บน RUN01 12ccbb74
การใช้ตัวดำเนินการ Docker กับโหนดอิมเมจ: ล่าสุด ...
กำลังดึงโหนดอิมเมจนักเทียบท่า: ล่าสุด ...
การใช้อิมเมจนักเทียบท่า sha256:ab773999a02271b25a9f3bce46018fc3ad46a7f922a5e3e8712b6d1c7087c415 สำหรับ node:latest ...
วิ่งบน Runner-12ccbb74-project-73-concurrent-0 ผ่าน (...)...
00:02
กำลังเรียกการเปลี่ยนแปลง...
00:01
HEAD อยู่ที่ 60b6860 อัปเดตการพึ่งพา mocha เป็น v9
ร้ายแรง: ไม่สามารถเข้าถึง 'https://gitlab-ci-token:xxxxxxxxxxxxxxxxxxxx@(...).git/': ปัญหาใบรับรอง SSL: ไม่สามารถรับใบรับรองผู้ออก
ข้อผิดพลาด: งานล้มเหลว: รหัสออก 1

จากนั้นฉันเพิ่ม (บนอินสแตนซ์ GitLab) ห่วงโซ่ที่สมบูรณ์ไปยังไฟล์ใบรับรอง และข้อผิดพลาดเปลี่ยนเป็น ปัญหาใบรับรอง SSL: ใบรับรองที่ลงนามด้วยตนเองในห่วงโซ่ใบรับรอง.

ตรรกะของฉัน*: ใช้งานได้กับ Ubuntu แต่ใช้ไม่ได้กับ Docker ดังนั้นฉันจึงย้ายไปที่ เชื่อถือใบรับรอง TLS สำหรับตัวดำเนินการ Docker และ Kubernetes ส่วน.

สิ่งที่ฉันพยายามจนถึงตอนนี้ไม่สำเร็จ:

  1. ฉันเพิ่มใบรับรอง Root CA ไปที่ /etc/gitlab-runner/certs/ca.crt.
  2. ฉันยังลองใช้ไฟล์ที่มี Root CA และ Intermediate CA ในสายโซ่
  3. ฉันเพิ่ม ปริมาณ = ["/cache", "/path/to-ca-cert-dir/ca.crt:/etc/gitlab-runner/certs/ca.crt:ro"] ไปที่ config.toml ไฟล์. แต่ฉันเกือบจะแน่ใจว่าฉันควรเปลี่ยน /path/to-ca-cert-dir ด้วยบางสิ่งบางอย่าง ฉันแค่ไม่รู้ว่าอะไร

* อัปเดต: เมื่อฉันติดตั้ง GitLab Runner ฉันทำตาม ติดตั้งโดยใช้ที่เก็บ GitLab สำหรับ Debian/Ubuntu/CentOS/RedHatดังนั้นคำแนะนำของนักเทียบท่า/K8 จึงไม่สมเหตุสมผล ฉันโพสต์ คำตอบ ว่าฉันสามารถแก้ปัญหานี้ได้อย่างไร

Score:1
ธง md

ฉันสามารถทำให้มันใช้งานได้ตามตัวเลือกที่สามใน ตัวเลือกที่รองรับสำหรับใบรับรองที่ลงนามเองซึ่งกำหนดเป้าหมายไปที่เซิร์ฟเวอร์ GitLabที่พูดว่า:

อ่านใบรับรอง PEM: GitLab Runner อ่านใบรับรอง PEM (ไม่รองรับรูปแบบ DER) จากไฟล์ที่กำหนดไว้ล่วงหน้า:

/etc/gitlab-runner/certs/hostname.crt บนระบบ *nix เมื่อ GitLab Runner ถูกเรียกใช้งานในฐานะ root

หากที่อยู่เซิร์ฟเวอร์ของคุณคือ https://my.gitlab.server.com:8443/ให้สร้างไฟล์ใบรับรองที่: /etc/gitlab-runner/certs/my.gitlab.server.com.crt

ดังนั้นฉันเพิ่งเพิ่มเชนที่สมบูรณ์ (ใบรับรอง GitLab, ระดับกลาง, รูท) ลงในชื่อไฟล์ /etc/gitlab-runner/certs/<gitlab-url>.crt. เริ่มบริการใหม่ด้วย รีสตาร์ท gitlab-runner และงานกำลังทำงานอยู่

โพสต์คำตอบ

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