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

สามไฟล์ สามหน้าที่ต่างกัน

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

การคัดลอกโฟลเดอร์โฮสต์ที่ใช้งานได้ไปยังเครื่องที่สองจึงไม่ใช่ทางลัด แต่เป็นตัวตนซ้ำที่มีผลลัพธ์คาดเดาได้

คีย์ลงนามไม่เคยเดินทาง

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

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

สิ่งที่มีอยู่ในใบรับรองโฮสต์

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

nebula-cert print -path host.crt แสดงสิ่งที่ออกจริง อ่านก่อนสันนิษฐานว่าใบรับรองมีที่อยู่ที่คุณตั้งใจไว้

การโหลดใหม่ไม่อาจเพียงพอเสมอ

การตั้งค่า PKI บางอย่างโหลดใหม่เมื่อได้รับสัญญาณ บางอย่างไม่ใบรับรองที่ที่อยู่ overlay เปลี่ยนไป เป็นกรณีคลาสสิกที่ต้องรีสตาร์ตโปรเซสแทนการโหลดใหม่

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

การลบตัวตนต้องมีบัญชีดำ

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

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

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