ฉันกำลังพยายามตรวจสอบ / ตรวจสอบว่าคีย์ rsa, ca-bundle และใบรับรองที่เก็บไว้ที่นี่ก็โอเค พวกเขาไม่ได้ให้บริการโดยเว็บเซิร์ฟเวอร์ ฉันจะตรวจสอบพวกเขาได้อย่างไร
ฉันกำลังพยายามตรวจสอบ / ตรวจสอบว่าคีย์ rsa, ca-bundle และใบรับรองที่เก็บไว้ที่นี่ก็โอเค พวกเขาไม่ได้ให้บริการโดยเว็บเซิร์ฟเวอร์ ฉันจะตรวจสอบพวกเขาได้อย่างไร
คำตอบ:
สมมติว่าใบรับรองของคุณอยู่ในรูปแบบ PEM คุณสามารถทำได้:
openssl verify cert.pem
หาก "ca-bundle" ของคุณเป็นไฟล์ที่มีใบรับรองระดับกลางเพิ่มเติมในรูปแบบ PEM:
openssl verify -untrusted ca-bundle cert.pem
หาก openssl ของคุณไม่ได้ตั้งค่าให้ใช้ชุดใบรับรองหลักที่ติดตั้งโดยอัตโนมัติ (เช่นใน/etc/ssl/certs
) คุณสามารถใช้-CApath
หรือ-CAfile
เพื่อระบุ CA
-CApath nosuchdir
แล้วการรวมกันของ server.crt และ cacert.pem จะต้องมีรูท CA ถ้า openssl สามารถทำงานได้กับ CA ระดับกลางเท่านั้นที่มีไฟล์เหล่านั้นมันจะบ่น
/certs/
มันบอกว่าไม่มีไฟล์ดังกล่าวใน จะทำให้เกิดปัญหาหรือไม่ เพราะฉันซ้อนในสถานการณ์ที่เซิร์ฟเวอร์ของฉันทำงาน http curl ทำงานได้ แต่ https .. curl ได้รับข้อผิดพลาด เว็บไซต์หยุดทำงาน
นี่คือหนึ่งซับเพื่อตรวจสอบห่วงโซ่ใบรับรอง:
openssl verify -verbose -x509_strict -CAfile ca.pem -CApath nosuchdir cert_chain.pem
สิ่งนี้ไม่จำเป็นต้องติดตั้ง CA ทุกที่
ดูhttps://stackoverflow.com/questions/20409534/how-does-an-ssl-certificate-chain-bundle-workสำหรับรายละเอียด
-CApath nosuchdir
สิ่งนี้เพื่อตอบ ขอขอบคุณ.
-CAfile
ตัวเองเป็นเพียงแค่ใบรับรองระดับกลางจากนั้น openssl จะบ่น สิ่งนี้เป็นพฤติกรรมที่ถูกต้องเนื่องจากverify
ต้องใช้เชนทั้งหมดจนถึงรูท CA แต่อาจทำให้เข้าใจผิด
OpenSSL 1.1.1 11 Sep 2018
) ต้องการอาร์กิวเมนต์เพื่อ-CApath
เป็นไดเรกทอรีที่มีอยู่
openssl x509
ส่วนคู่มือ