ฉันกำลังวินิจฉัยปัญหาการตรวจสอบใบรับรอง TLS ใน Ubuntu Xenial ซึ่งเป็นผลมาจากล่าสุด มาเข้ารหัสการหมดอายุของใบรับรองหลักกันเถอะ. ปัญหาเกิดขึ้นใน cURL ซึ่งใช้ GnuTLS ภายใต้ประทุน - ดังนั้นฉันจึงใช้ gnutls-cli
เพื่อวินิจฉัย (เมื่อใช้ opensl
ปัญหาอื่นจะเกิดขึ้นก่อนการยืนยันใบรับรอง ดังนั้นจึงไม่มีประโยชน์)
แม้ว่าฉันจะอัปเดตใบรับรอง DST Root CA X3 แล้วก็ตาม (ด้วย apt ติดตั้งใบรับรอง ca
) และยืนยันว่าโดยการเปรียบเทียบเนื้อหาของ /usr/share/ca-certificates/mozilla/
(ตามชื่อไฟล์ ขนาด และผลรวม MD5) ในเครื่องที่มีปัญหาและในเครื่องอื่นที่ไม่มีข้อผิดพลาด ปัญหายังคงอยู่ ความแตกต่างของเนื้อหาของ /etc/ssl/certs/ca-certificates.crt
(ซึ่งเป็นไฟล์ที่ GnuTLS ใช้โดยตรง ซึ่งถูกกล่าวหาว่าสร้างขึ้นโดยอัตโนมัติจากไดเร็กทอรีเดิมโดย /usr/sbin/update-ca-certificates
) แสดงความแตกต่าง แต่ใบรับรอง DST Root CA X3 ไม่ได้อยู่ในกลุ่มเหล่านี้
ตอนนี้ฉันติดอยู่ที่จุดที่ฉันสามารถสร้างปัญหาซ้ำได้ gnutls-cli
-- แต่ ไม่แสดงใบรับรองหลักที่ใช้เฉพาะห่วงโซ่ใบรับรองที่เซิร์ฟเวอร์จัดหาซึ่งไม่เป็นไร:
$ gnutls-cli download.clis.cloud.ibm.com --print-cert </dev/null 2>&1
ประมวลผลใบรับรอง CA 129 รายการ
กำลังแก้ไข 'download.clis.cloud.ibm.com'...
กำลังเชื่อมต่อกับ '69.192.0.152:443'...
- ประเภทใบรับรอง: X.509
- ได้ใบประกาศนียบัตร จำนวน 3 ใบ
- ข้อมูลใบรับรอง[0]:
- หัวเรื่อง `CN=cert-00045-cdnedge-bluemix.akamaized.net', ผู้ออก `C=US,O=Let's Encrypt,CN=R3', คีย์ RSA 2048 บิต, เซ็นชื่อโดยใช้ RSA-SHA256, เปิดใช้งาน `2021-10 -19 02:05:23 UTC' หมดอายุ `2022-01-17 02:05:22 UTC' SHA-1 ลายนิ้วมือ `8a13f222870579984cf6a0c6cf8ebfe6f122eb0b'
รหัสคีย์สาธารณะ:
8bb871d529bc8edcd0158b6a16787990e7334bc9
ศิลปะแบบสุ่มของคีย์สาธารณะ:
<...>
-----เริ่มต้นใบรับรอง-----
<...>
-----จบใบรับรอง-----
- ข้อมูลใบรับรอง[1]:
- หัวเรื่อง `C=US,O=Let's Encrypt,CN=R3', ผู้ออก `C=US,O=Internet Security Research Group,CN=ISRG Root X1', คีย์ RSA 2048 บิต, เซ็นชื่อโดยใช้ RSA-SHA256, เปิดใช้งาน ` 2020-09-04 00:00:00 UTC' หมดอายุ `2025-09-15 16:00:00 UTC' SHA-1 ลายนิ้วมือ `a053375bfe84e8b748782c7cee15827a6af5a405'
-----เริ่มต้นใบรับรอง-----
<...>
AYYwHQYDVR*** ข้อผิดพลาดร้ายแรง: ข้อผิดพลาดในใบรับรอง
*** การจับมือล้มเหลว
ข้อผิดพลาด GnuTLS: ข้อผิดพลาดในใบรับรอง
<...>
-----จบใบรับรอง-----
- ข้อมูลใบรับรอง[2]:
- หัวเรื่อง `C=US,O=Internet Security Research Group,CN=ISRG Root X1', ผู้ออก `O=Digital Signature Trust Co.,CN=DST Root CA X3', คีย์ RSA 4096 บิต, เซ็นชื่อโดยใช้ RSA-SHA256 เปิดใช้งาน `2021-01-20 19:14:03 UTC' หมดอายุ `2024-09-30 18:14:03 UTC' SHA-1 ลายนิ้วมือ `933c6ddee95c9c41a40f9f50493d82be03ad87bf'
-----เริ่มต้นใบรับรอง-----
<...>
-----จบใบรับรอง-----
- สถานะ: ใบรับรองไม่น่าเชื่อถือ สายใบรับรองใช้ใบรับรองที่หมดอายุ
*** การตรวจสอบ PKI ของใบรับรองเซิร์ฟเวอร์ล้มเหลว...
ดังนั้น ฉันไม่เห็นว่าใบรับรองในเครื่องใดทำให้เกิดปัญหา มีวิธีการดึงข้อมูลนี้หรือไม่?