0Pricing
Cryptology Academy · บทเรียน

การสร้างและจัดการสายโซ่ใบรับรอง

สร้าง CA หลัก CA ระดับกลาง และใบรับรองเอนทิตีปลายทาง พร้อมตรวจสอบสายโซ่อย่างถูกต้อง

การสร้างและจัดการสายโซ่ใบรับรอง เป็นบทเรียน Cryptology Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Cryptology Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Cryptology Academy มีบทเรียนทั้งหมด 4 บทเรียน

การสร้าง CA ราก

CA รากคือใบรับรองที่ลงนามด้วยตนเองและทำหน้าที่เป็นจุดยึดความน่าเชื่อถือสูงสุด กุญแจส่วนตัวของ CA รากต้องเก็บไว้แบบออฟไลน์ (ในระบบที่แยกขาดจากเครือข่ายหรือ HSM) เนื่องจากหากถูกบุกรุกจะทำลายความน่าเชื่อถือของ PKI ทั้งหมด คำสั่ง "openssl req -x509 -new -nodes -key root_key.pem -sha256 -days 3650 -out root_cert.pem" จะสร้างใบรับรองรากที่ลงนามด้วยตนเองและมีอายุ 10 ปี

การสร้าง CA ระดับกลาง

CA ระดับกลางได้รับการลงนามโดย CA รากและใช้สำหรับการออกใบรับรองในงานประจำวัน ขั้นแรก ให้สร้างกุญแจและ CSR ของ CA ระดับกลางด้วยคำสั่ง "openssl req -new -key intermediate_key.pem -out intermediate.csr" จากนั้นให้ CA รากลงนามด้วยคำสั่ง "openssl x509 -req -in intermediate.csr -CA root_cert.pem -CAkey root_key.pem -CAcreateserial -days 1825 -out intermediate_cert.pem"

การสร้างใบรับรองเอนทิตีปลายทาง

ใบรับรองเอนทิตีปลายทาง (ใบรับรองปลายทาง) ได้รับการลงนามโดย CA ระดับกลางสำหรับเซิร์ฟเวอร์หรือไคลเอ็นต์เฉพาะ ให้สร้างกุญแจและ CSR ของเซิร์ฟเวอร์พร้อมชื่อทางเลือกของหัวเรื่อง (SAN) จากนั้นลงนามด้วย CA ระดับกลางโดยใช้คำสั่ง "openssl x509 -req -in server.csr -CA intermediate_cert.pem -CAkey intermediate_key.pem -CAcreateserial -extensions v3_req -days 365 -out server_cert.pem"

เหตุผลที่ CA ระดับกลางช่วยปกป้อง CA ราก

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

คำสั่ง openssl ca

คำสั่ง "openssl ca" มีกระบวนการทำงานของ CA ที่ครบถ้วนกว่าคำสั่ง "openssl x509 -req" คำสั่งนี้ดูแลฐานข้อมูลใบรับรอง (index.txt) กำหนดหมายเลขลำดับจากไฟล์หมายเลขลำดับ และจัดการการสร้าง CRL โดยต้องใช้ไฟล์กำหนดค่า openssl.cnf ที่จัดเตรียมไว้อย่างถูกต้อง พร้อมส่วนที่เฉพาะสำหรับ CA ซึ่งกำหนดนโยบายใบรับรองและข้อจำกัดความยาวเส้นทาง

การประกอบไฟล์สายโซ่ใบรับรอง

ไฟล์สายโซ่ใบรับรองที่สมบูรณ์สำหรับเว็บเซิร์ฟเวอร์จะมีใบรับรองเอนทิตีปลายทาง ตามด้วยใบรับรอง CA ระดับกลางตามลำดับ และไม่รวมใบรับรองราก เนื่องจากเบราว์เซอร์มีคลังใบรับรองรากติดตั้งไว้ล่วงหน้า ลำดับการต่อไฟล์คือ "cat server_cert.pem intermediate_cert.pem > chain.pem" การเรียงลำดับผิดจะทำให้การจับมือ TLS ล้มเหลว

การตรวจสอบสายโซ่ใบรับรอง

คำสั่ง "openssl verify -CAfile root_cert.pem -untrusted intermediate_cert.pem server_cert.pem" ใช้ตรวจสอบสายโซ่ทั้งหมด แฟล็ก "-untrusted" ใช้ระบุใบรับรองระดับกลางที่เป็นส่วนหนึ่งของสายโซ่แต่ยังไม่ได้รับความเชื่อถือ หากการตรวจสอบสำเร็จ ผลลัพธ์จะเป็น "server_cert.pem: OK" ข้อผิดพลาดที่พบบ่อยมักบ่งชี้ว่าใบรับรองระดับกลางหายไปหรือใบรับรองหมดอายุ

ปัญหาสายโซ่ที่พบบ่อย

ปัญหาสายโซ่ใบรับรองที่พบบ่อย ได้แก่ ใบรับรองระดับกลางหายไป (เซิร์ฟเวอร์ส่งเฉพาะใบรับรองปลายทาง) การต่อไฟล์ผิดลำดับ (ต้องวางใบรับรองปลายทางไว้ก่อน) ใบรับรองระดับกลางหมดอายุ (มักตรวจพบได้ยากเนื่องจากมีการตรวจติดตามวันหมดอายุของใบรับรองปลายทาง) ใบรับรองที่ลงนามด้วยตนเองไม่อยู่ในคลังความน่าเชื่อถือ และชื่อไม่ตรงกัน (SAN ของใบรับรองไม่ตรงกับชื่อโฮสต์) ปัญหาทั้งหมดตรวจวินิจฉัยได้ด้วย "openssl s_client -showcerts"

รูปแบบชุดรวม PKCS#12

PKCS#12 (.pfx หรือ .p12) เป็นรูปแบบคอนเทนเนอร์ที่รวมกุญแจส่วนตัว ใบรับรองเอนทิตีปลายทาง และใบรับรองระดับกลางไว้ในไฟล์เข้ารหัสไฟล์เดียว การสร้างใช้คำสั่ง "openssl pkcs12 -export -out bundle.pfx -inkey server_key.pem -in server_cert.pem -certfile intermediate_cert.pem" รูปแบบนี้จำเป็นสำหรับ IIS ที่เก็บกุญแจของ .NET และ Java รวมถึงแอปพลิเคชันระดับองค์กรจำนวนมาก

ความแตกต่างระหว่าง PEM, DER และ PFX

PEM คือ ASCII ที่เข้ารหัสแบบ base64 อ่านได้โดยมนุษย์ รองรับออบเจ็กต์หลายรายการในไฟล์เดียว และใช้โดย Apache, nginx และเครื่องมือ OpenSSL ส่วน DER เป็นไบนารีที่มีออบเจ็กต์เดียวต่อไฟล์ ใช้โดย Java (การนำเข้า JKS) Android และเครื่องมือระดับองค์กรบางประเภท ส่วน PKCS#12/PFX เป็นคอนเทนเนอร์ไบนารีเข้ารหัสสำหรับออบเจ็กต์หลายรายการ ใช้โดย Windows และ IIS ควรทราบรูปแบบที่ระบบปลายทางคาดหวังก่อนนำไปใช้งาน

ความโปร่งใสและการออกใบรับรอง

CA สมัยใหม่ต้องบันทึกใบรับรองที่ออกทั้งหมดลงในบันทึก Certificate Transparency (CT) ก่อนส่งมอบ เมื่อสร้าง CA ส่วนตัวสำหรับใช้ภายใน ไม่จำเป็นต้องใช้การบันทึก CT อย่างไรก็ตาม ใบรับรองที่ให้บริการสาธารณะต้องมี Signed Certificate Timestamps (SCT) ฝังอยู่ จึงจะได้รับความเชื่อถือจาก Chrome ส่วน CA ส่วนตัวสามารถใช้นโยบายของตนเองได้โดยไม่ต้องปฏิบัติตามข้อกำหนด CT

การตรวจสอบลำดับสายโซ่ใบรับรอง

เมื่อประกอบไฟล์สายโซ่ใบรับรอง TLS สำหรับเซิร์ฟเวอร์ nginx ควรต่อลำดับใดจึงจะถูกต้อง

สรุปบทเรียน: การจัดการสายโซ่ใบรับรอง

CA รากลงนามด้วยตนเอง เก็บไว้แบบออฟไลน์ และลงนามเฉพาะ CA ระดับกลางเท่านั้น CA ระดับกลางจัดการการออกใบรับรองในงานประจำวัน ไฟล์สายโซ่จะมีใบรับรองปลายทางก่อน ตามด้วยใบรับรองระดับกลาง (ไม่รวมใบรับรองราก) ตรวจสอบด้วย "openssl verify -CAfile root.pem -untrusted intermediate.pem leaf.pem" ชุดรวม PKCS#12 รวมกุญแจและใบรับรองสำหรับ Windows/Java การเรียงลำดับสายโซ่ผิดเป็นสาเหตุที่พบบ่อยของความล้มเหลวในการนำไปใช้งาน และตรวจวินิจฉัยได้ด้วย s_client -showcerts

คำถามที่พบบ่อย

บทเรียน “การสร้างและจัดการสายโซ่ใบรับรอง” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การสร้างและจัดการสายโซ่ใบรับรอง” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Cryptology Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Cryptology Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การสร้างและจัดการสายโซ่ใบรับรอง”

สร้าง CA หลัก CA ระดับกลาง และใบรับรองเอนทิตีปลายทาง พร้อมตรวจสอบสายโซ่อย่างถูกต้อง คุณปฏิบัติ Cryptology Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Cryptology Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Cryptology Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “การสร้างและจัดการสายโซ่ใบรับรอง” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Cryptology Academy นี้ได้ไหม

ได้ บทเรียน Cryptology Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. พื้นฐานสำคัญของ OpenSSL ผ่านบรรทัดคำสั่ง
  2. การสร้างและจัดการสายโซ่ใบรับรอง
  3. OCSP Stapling และความโปร่งใสของใบรับรอง
  4. Let's Encrypt และการทำงานอัตโนมัติด้วยโพรโทคอล ACME
← กลับไปที่ Cryptology Academy