เพิ่มไคลเอนต์ VPN โดยไม่สร้าง CA ใหม่
อุปกรณ์เพิ่มอีกเครื่องคือการลงทะเบียน ไม่ใช่การติดตั้งใหม่ ตัดสินจากสถานะผู้ออก การเก็บรักษาคีย์ และตัวตนของเซิร์ฟเวอร์
คุณต้องการใบรับรองอีกใบสำหรับแล็ปท็อปอีกเครื่อง แต่บทเรียนแรกในผลการค้นหาเริ่มด้วยคำสั่งที่ลบไดเรกทอรี PKI คำสั่งนั้นเป็นของการตั้งค่าครั้งแรก ไม่ใช่การลงทะเบียน และการรันมันทำให้คุณเสีย CA ประวัติการออกใบรับรอง และโปรไฟล์ไคลเอนต์ทุกรายที่เชื่อถือผู้ออกเดิม การตัดสินใจแคบกว่า: ผู้ออกยังมีสถานะที่ใช้งานได้หรือไม่ และอุปกรณ์ใหม่เข้ากับนโยบายการลงทะเบียนของคุณหรือไม่ สามเงื่อนไขเป็นตัวตัดสิน และมีเพียงข้อเดียวที่ทำให้การสร้างใหม่ชอบธรรม
การสร้างใหม่ทำลายอะไรจริง ๆ
การเริ่มต้น PKI ใหม่แทนที่ไดเรกทอรีด้วยโครงสร้างว่าง: คีย์และใบรับรอง CA ใหม่ ฐานข้อมูลการออกใบรับรองว่าง และตัวนับลำดับใหม่ ไคลเอนต์ไม่ได้ตามไปเอง โปรไฟล์ของพวกเขาปักหมุด CA เดิม ทุกอุปกรณ์จึงต้องลงทะเบียนใหม่ และอุปกรณ์ที่เข้าถึงไม่ได้ต้องทำด้วยมือ
ความสูญเสียที่เงียบกว่าคือบัญชี การเพิกถอนขึ้นอยู่กับการรู้ว่าคุณออกหมายเลขลำดับใดให้ใคร ล้างดัชนีแล้วคุณยังลงนามได้ แต่ไม่อาจยืนยันได้ว่าใบรับรองที่ค้างอยู่ใบใดที่คุณตั้งใจจะเพิกถอน ไดเรกทอรี CA ที่มีใบรับรองโดยไม่มีสถานะผู้ออกที่ตรงกันคือแบ็กอัปที่กู้คืนระบบครึ่งผิด
การคัดลอกคีย์ส่วนตัวของ CA ไว้ข้างเซิร์ฟเวอร์ที่ทำงานอยู่คือทางลัดอีกทางที่ควรปฏิเสธ: มันเปลี่ยนผู้ออกใบรับรองที่ควรอยู่นอกเครือข่ายให้เป็นไฟล์อีกไฟล์บนโฮสต์ที่รับส่งข้อมูลที่ไม่น่าเชื่อถือ
เงื่อนไขที่หนึ่ง: สถานะของผู้ออกยังเข้าถึงได้หรือไม่
ค้นหาไดเรกทอรีที่เซิร์ฟเวอร์เชื่อถือจริงก่อนตัดสินใจ เปรียบเทียบใบรับรองที่เซิร์ฟเวอร์นำเสนอเป็น CA กับใบในไดเรกทอรี PKI ด้วยลายนิ้วมือ ไม่ใช่ชื่อไฟล์:
openssl x509 -in ca.crt -noout -fingerprint -sha256
openssl x509 -in /etc/openvpn/ca.crt -noout -fingerprint -sha256ถ้าลายนิ้วมือตรงกัน การลงทะเบียนเป็นแบบเพิ่ม และคุณไม่ต้องสร้างอะไรใหม่ ถ้าแตกต่าง คุณกำลังลงนามด้วย CA ที่เซิร์ฟเวอร์ไม่เชื่อถือ: ใบรับรองติดตั้งได้เรียบร้อยแต่ล้มเหลวที่การจับมือ และข้อผิดพลาดนั้นถูกวินิจฉัยผิดว่าเป็นบั๊กของไคลเอนต์เป็นชั่วโมง ๆ
จากนั้นมองหาสถานะการออกใบรับรอง: ไฟล์ดัชนี ตัวนับลำดับ และไฟล์หมายเลข CRL ถ้าดัชนีหายไปแต่คีย์ยังอยู่ คุณออกใบรับรองได้ แต่สืบทอดปัญหาการบันทึกการเพิกถอน บันทึกไว้ในบันทึกการเปลี่ยนแปลง เพราะคำขอเพิกถอนครั้งถัดไปจะเปิดเผยมัน
เงื่อนไขที่สอง: ใครถือคีย์ส่วนตัวใหม่
นี่คือการตัดสินใจที่ผู้ใช้รู้สึกได้ จึงต้องตัดสินอย่างชัดเจน คีย์ที่สร้างบนไคลเอนต์และส่งมาเป็นคำขอจะเก็บครึ่งส่วนตัวไว้บนอุปกรณ์ตั้งแต่คำสั่งแรก และผู้ดูแลไม่เคยแตะมัน คีย์ที่สร้างบนเซิร์ฟเวอร์ง่ายกว่าสำหรับอุปกรณ์ที่ไม่มีเครื่องมือ แต่ทำให้ผู้ดูแลเป็นผู้ดูแลคีย์ทุกดอกและขยายผลกระทบของการบุกรุกเซิร์ฟเวอร์
ด้วย Easy-RSA 3 กับ CA ที่มีอยู่ การนำเข้าและลงนามคำขอคือสองคำสั่ง:
./easyrsa import-req /tmp/alice.req alice
./easyrsa sign-req client aliceเลือกชนิดใบรับรองอย่างตั้งใจ คำขอที่ลงนามเป็นใบรับรองเซิร์ฟเวอร์แทนไคลเอนต์ให้ไฟล์ที่ดูปกติแต่ฝ่ายตรงข้ามปฏิเสธ และข้อความข้อผิดพลาดแทบไม่บอกสาเหตุ เมื่อใช้ openssl ca ตัวเลือกเดียวกันอยู่ในส่วนขยายที่คุณส่งไป ไม่ใช่ในส่วนค่าเริ่มต้น
เงื่อนไขที่สาม: เซิร์ฟเวอร์ต้องการมากกว่าใบรับรองหรือไม่
สำหรับ OpenVPN ทั่วไปที่ตรวจสอบด้วยใบรับรอง ใบรับรองคือการลงทะเบียนเอง: ชื่อสามัญกลายเป็นตัวตนของไคลเอนต์ และไดเรกทอรี เส้นทางที่พุช หรือที่อยู่คงที่ผูกกับชื่อนั้น เพิ่มใบรับรองแล้วลืมการตั้งค่า อุโมงค์จะเชื่อมต่อแต่เส้นทางที่จำเป็นไม่ปรากฏ
แพลตฟอร์มเปลี่ยนสิ่งนี้ OpenVPN Access Server มีฐานผู้ใช้ของตัวเอง ใบรับรองที่ลงนามจึงไม่ใช่บัญชี บัญชีต้องมีอยู่และได้รับอนุญาต เกตเวย์อื่นผูกสตริงตัวตนกับกลุ่ม การลงทะเบียนอุปกรณ์หนึ่งเครื่องมักแตะสองระบบ และใบรับรองเป็นเพียงอย่างแรก
ขั้นตอนแบบเพิ่ม และเมื่อใดการสร้างใหม่จึงถูกต้อง
ลำดับที่เพิ่มอุปกรณ์หนึ่งเครื่องโดยไม่เสียหาย: ยืนยันผู้ออกด้วยลายนิ้วมือ สำรองไดเรกทอรี PKI ใหม่ นำเข้าและลงนามคำขอสำหรับบทบาทไคลเอนต์ ส่งมอบใบรับรองพร้อมห่วงโซ่ผ่านช่องทางที่อนุมัติ แล้วตรวจสอบก่อนผู้ใช้เชื่อมต่อ:
openssl verify -CAfile ca.crt alice.crt
openssl x509 -in alice.crt -noout -subject -issuer -dates -purposeบรรทัดวัตถุประสงค์ควรแสดง SSL client จบด้วยการอัปเดตแบ็กอัป CA หลังการออกใบรับรอง เพราะแบ็กอัปที่ถ่ายก่อนบันทึกลำดับใหม่จะคืนสถานะที่ไม่มีอุปกรณ์ที่คุณเพิ่งเพิ่ม
การสร้างใหม่ถูกต้องในสามกรณี: คีย์ CA ถูกบุกรุก สถานะการออกใบรับรองสูญหายอย่างกู้คืนไม่ได้ หรือคุณเปลี่ยนอัลกอริทึมคีย์หรือนโยบายใบรับรองโดยเจตนา ทั้งสามเป็นโครงการที่มีแผนลงทะเบียนใหม่สำหรับไคลเอนต์ทุกราย ไม่ใช่ขั้นตอนในคำขออุปกรณ์เดียว ถ้าไม่มีข้อใดใช้ ให้ลงทะเบียนแบบเพิ่ม