โปรไฟล์ OpenVPN ใน Git: สิ่งที่ต้องลบก่อน commit
อ่านไฟล์เพื่อหาคีย์ที่ฝังอยู่ ตัดสินใจว่าคลังเก็บอนุญาตให้เผยแพร่อะไร และเพิกถอนก่อนที่คุณจะเขียนประวัติใหม่
โปรไฟล์ทำหน้าที่สองอย่างพร้อมกัน คือบันทึกการตั้งค่าการเชื่อมต่อ และพกชุดข้อมูลรับรองที่ใช้งานได้จริง นามสกุลไฟล์ไม่ได้บอกอะไรคุณเลยว่าคุณกำลังถืออะไรอยู่ อ่านเนื้อหาก่อนตัดสินใจว่ามันเป็นของคลังเก็บ
ขั้นตอนด้านล่างถือว่ากำลังพิจารณาเทมเพลตไคลเอนต์สำหรับการควบคุมเวอร์ชัน ทำตามลำดับ และหยุดก่อน commit สิ่งที่คุณเพิกถอนไม่ได้
อ่านไฟล์ที่คุณกำลังจะเพิ่มในดัชนี
เริ่มจากไบต์จริง เพราะโปรไฟล์ที่อ้างถึงไฟล์แยกต่างหากดูแตกต่างอย่างสิ้นเชิงจากไฟล์ที่ฝังไว้ ค้นหาเครื่องหมายบล็อก PEM และแท็กแบบอินไลน์ที่ชื่อ ca, cert, key, tls-auth และ tls-crypt และการตรวจครั้งเดียวกันจะแสดงทั้งสองกรณี กุญแจส่วนตัวที่เข้ารหัสยังนับเป็นวัสดุอ่อนไหว และกุญแจ tls-auth หรือ tls-crypt ที่ใช้ร่วมกันก็เป็นข้อมูลรับรองแม้จะไม่ใช่ตัวตนของผู้ใช้ ใช้การทบทวนเดียวกันกับทุกสิ่งที่ถูกเพิ่มในดัชนีพร้อมกับโปรไฟล์ รวมถึงไฟล์เก็บถาวรและสคริปต์ติดตั้งที่อ้างถึงไฟล์ข้อมูลรับรอง
จากนั้นดูชุดที่อยู่ในดัชนี ไม่ใช่ทรีทำงาน git diff --cached แสดงสิ่งที่ commit จะมีจริง และนั่นคือเวอร์ชันเดียวที่สำคัญสำหรับการตัดสินใจนี้
ตัดสินใจว่าคลังเก็บอนุญาตให้เผยแพร่อะไร
เทมเพลตสามารถพาการตั้งค่าที่ใช้ร่วมกันและผ่านการทบทวนแล้ว และตัวแทนที่ระบุชื่อสำหรับทุกสิ่งที่บุคคลได้รับเมื่อลงทะเบียน สิ่งที่มันพาไม่ได้คือตัวตนที่ใช้งานได้ เพราะคลังเก็บถูกเผยแพร่ให้ทุกคนที่อ่านได้ รวมถึงระบบอัตโนมัติ คลังเก็บส่วนตัวจำกัดผู้ชมลงแต่ไม่ได้เปลี่ยนคำถามว่าผู้อ่านแต่ละคนได้รับอนุญาตสำหรับข้อมูลรับรองนั้นหรือไม่
กฎการเพิกเฉยป้องกันการเพิ่มในอนาคตและไม่ได้ทำอะไรกับสิ่งที่บันทึกไว้แล้ว ความไม่สมดุลนี้ควรถูกทำความเข้าใจก่อน commit แรก ไม่ใช่หลังครั้งที่สิบ ชื่อและที่อยู่ของโครงสร้างพื้นฐานเป็นการตัดสินใจแยกต่างหาก ไม่ใช่ความลับของการพิสูจน์ตัวตน แต่สามารถเปิดเผยได้มากกว่าที่ทีมตั้งใจจะเผยแพร่ ตัดสินใจเรื่องนั้นอย่างชัดเจนแทนที่จะจัดทุกบรรทัดเป็นรหัสผ่านหรือสาธารณะ
หากเนื้อหาอยู่ในประวัติแล้ว
การลบบรรทัดใน commit ใหม่ทำให้เวอร์ชันเก่ายังคงอยู่สำหรับใครก็ตามที่ดึงมันไป ปฏิบัติต่อการเปิดเผยว่าเป็นเรื่องจริง ระบุประเภทของข้อมูลรับรอง แล้วหาหน่วยงานที่ทำให้เป็นโมฆะได้ ใบรับรองไคลเอนต์ถูกเพิกถอนและรายการเพิกถอนถูกสร้างใหม่ กุญแจช่องควบคุมที่ใช้ร่วมกันถูกเปลี่ยนบนเซิร์ฟเวอร์และบนไคลเอนต์ทุกตัวที่ใช้มัน
ทั้งสองมีรัศมีผลกระทบต่างกันมาก และแผนควรระบุว่าคุณกำลังดำเนินการอันไหนก่อนเริ่ม ค้นหา commit ที่นำเนื้อหาเข้ามาด้วยการค้นหาแบบ git log --all -S 'BEGIN PRIVATE KEY' เพื่อให้ขอบเขตการทำความสะอาดเป็นที่รู้ ไม่ใช่การเดา คลอนของเพื่อนร่วมงานหรือฟอร์กอาจถือออบเจ็กต์เก่าไว้แล้ว ดังนั้นการเพิกถอนจึงมาก่อนและการทำความสะอาดตามมาทีหลัง
ทำความสะอาดหลังจากการควบคุมแล้วเท่านั้น
การเขียนประวัติใหม่เปลี่ยนทุก commit หลังจากที่คุณแก้ไข ดังนั้นก่อนอื่นต้องได้รับความเห็นชอบจากเจ้าของคลังเก็บและผู้ที่ทำงานในนั้น การ push แบบบังคับไม่ใช่การซ่อมแซม แต่เป็นเหตุการณ์ประสานงานที่มีความเสี่ยงในการย้อนกลับของตัวเอง กำหนดเวลา สำรองข้อมูล และบอกทีมว่าจะเกิดขึ้นเมื่อใด
หลังจากนั้น ตรวจสอบทรีปัจจุบันและประวัติที่เหลือแทนที่จะเชื่อในบทสรุปของเครื่องมือ
เก็บผลลัพธ์เป็นสองสิ่ง: เทมเพลตที่ปลอดภัยต่อการแชร์ และบัญชีรายการข้อมูลรับรองที่ออกให้ระหว่างกระบวนการลงทะเบียน ทั้งสองไม่ต้องการให้ตัวตนที่ใช้งานได้อาศัยอยู่ในคลังเก็บ
การแยกนั้นคือการแก้ไขที่แท้จริง และมันอยู่รอดผ่านบุคคลถัดไปที่ต้องการ commit โปรไฟล์