ไฟล์แบทช์หยุดด้วยข้อความ “ระบบไม่สามารถค้นหาคีย์หรือค่ารีจิสทรีที่ระบุได้” และทุกคนคิดว่าหน่วยงานออกใบรับรองเสียหาย ไม่ใช่ หรืออย่างน้อยก็ยังไม่ใช่: สคริปต์ล้มเหลวขณะค้นหาซอฟต์แวร์ ก่อนที่จะขอให้ Easy-RSA ทำอะไรกับคีย์ ลำดับนี้สำคัญ เพราะหมายความว่าการซ่อมคือปัญหาเรื่องการค้นหา และ PKI เป็นเพียงผู้ชม การอ่านบรรทัดที่ล้มเหลวคือการวินิจฉัยทั้งหมด และใช้เวลาน้อยกว่าวิธีเลี่ยงใด ๆ

ข้อผิดพลาดเกิดขึ้นก่อนที่ CA จะถูกแตะต้อง

ไฟล์แบทช์ Easy-RSA 2 รุ่นเก่าจะค้นหา OpenSSL หรือการติดตั้ง OpenVPN โดยสอบถามรีจิสทรี แล้วตั้งค่าตัวแปรตามสิ่งที่พบ เมื่อคำถามไม่คืนอะไรเลย สคริปต์จะหยุดก่อนการดำเนินการใด ๆ เกี่ยวกับใบรับรองจะทำงาน

ดังนั้นข้อความเกี่ยวกับคีย์รีจิสทรีจึงเป็นหลักฐานเกี่ยวกับสภาพแวดล้อมของสคริปต์ ไม่ใช่ไดเรกทอรี CA

สองมุมมองรีจิสทรี ไฟล์แบทช์เดียว

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

reg query "HKLM\SOFTWARE\OpenVPN" /reg:32
reg query "HKLM\SOFTWARE\OpenVPN" /reg:64

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

หากไม่มีมุมมองใดมีรายการนั้น ตัวติดตั้งไม่เคยสร้างมันขึ้นมา และการสร้างค่าเองด้วยมือจะไม่ทำให้เครื่องมือทำงาน

อย่าเพิ่ม /reg:64 โดยไม่มีเงื่อนไข

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

เปลี่ยนการค้นหาเฉพาะหลังจากเห็นแล้วว่ามุมมองใดมีค่าที่คาดไว้

การค้นพบไม่ใช่การซ่อม PKI

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

สำรองไดเรกทอรี CA ก่อนการทดลองใด ๆ แม้แต่การทดลองที่คุณแน่ใจว่าเป็นแบบอ่านอย่างเดียว

การย้ายไป Easy-RSA 3 คือการย้ายระบบ

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

การเปลี่ยนเวอร์ชันคือโครงการ ส่วนข้อผิดพลาดรีจิสทรีคือบ่ายวันหนึ่ง

การเปรียบเทียบที่แก้ได้จริง

เขียนสี่สิ่งแล้วเปรียบเทียบโดยตรง:

  • สคริปต์ใดทำงาน และบรรทัดใดล้มเหลว
  • บรรทัดนั้นสอบถามมุมมองรีจิสทรีใด
  • สคริปต์คาดหวังพาธไฟล์เรียกทำงานใด
  • มีการติดตั้งใดอยู่จริงบนเครื่อง

เมื่อทั้งสี่ตรงกัน ข้อผิดพลาดก็หายไป และปัญหาใบรับรองใดที่เหลือสามารถอ่านได้จากหลักฐานของมันเองแทนที่จะโทษ CA

บทความที่เกี่ยวข้อง