strongSwan: ชนิดของคีย์ ตัวโหลด และ backend ที่ผิด
PEM เป็นคอนเทนเนอร์ ไม่ใช่ชนิดของคีย์ เปรียบเทียบกุญแจสาธารณะของใบรับรองกับกุญแจส่วนตัว แล้วโหลดผ่าน backend ที่อ่านมันจริง ๆ
นามสกุลไฟล์ไม่ได้ระบุอัลกอริทึมของคีย์ และซอง .pem อาจบรรจุวัสดุ RSA หรือ ECDSA PEM อธิบายว่าบิตถูกห่ออย่างไร ขณะที่ RSA และ ECDSA เป็นชื่ออัลกอริทึมที่ต่างกัน และไฟล์ PKCS12 ก็เป็นอีกสิ่งหนึ่ง strongSwan โหลดข้อมูลรับรองผ่านปลั๊กอินและ backend การตั้งค่า ดังนั้นใบรับรองอาจปรากฏในรายการได้ในขณะที่กุญแจส่วนตัวไม่เคยใช้งานได้ แยกชั้นเหล่านั้นก่อนแก้ไขความลับใด ๆ
การเข้ารหัส อัลกอริทึม และการบรรจุเป็นสามชั้น
ไฟล์คีย์มีการเข้ารหัส อัลกอริทึม และมักมีคอนเทนเนอร์ PEM คือซอง base64 ที่คุ้นเคย DER คือคู่แบบไบนารีของมัน PKCS12 รวมใบรับรองเข้ากับคีย์และห่วงโซ่ของมัน ไฟล์ห่วงโซ่ใบรับรองเป็นอีกคอนเทนเนอร์หนึ่ง และมักไม่มีกุญแจส่วนตัวเลย ไม่มีป้ายใดบอกว่าวัสดุข้างในเป็น RSA หรือ ECDSA
อ่านอัลกอริทึมจากออบเจกต์เอง ชื่อการตลาดของผู้ให้บริการหรือนามสกุลไฟล์ไม่ใช่หลักฐาน เพราะผู้ออกคนเดียวกันอาจออกคีย์ชนิดต่างกันได้
เปรียบเทียบกุญแจสาธารณะก่อนตำหนิตัวโหลด
ใบรับรองที่โหลดได้พิสูจน์ว่าใบรับรองถูกแยกวิเคราะห์ ไม่ได้พิสูจน์ว่ากุญแจส่วนตัวมีอยู่หรือใช้งานได้ สร้างกุญแจสาธารณะจากใบรับรองและจากกุญแจส่วนตัวที่เสนอ แล้วเปรียบเทียบไดเจสต์ทั้งสอง หากการดึงออกใดล้มเหลว ให้หยุดตรงนั้น เพราะไดเจสต์ของผลลัพธ์ว่างเปล่าไม่ได้พิสูจน์อะไร ไดเจสต์ที่ตรงกันพิสูจน์ว่าคู่นั้นอยู่ด้วยกัน และไม่มีอะไรเพิ่มเติมเกี่ยวกับว่าใบรับรองเหมาะกับงานหรือไม่
openssl x509 -in server.crt -pubkey -noout |
openssl pkey -pubin -outform DER |
openssl dgst -sha256
openssl pkey -in server-key.pem -pubout -outform DER |
openssl dgst -sha256
คำสั่งที่สองแตะวัสดุส่วนตัวบนเครื่องของคุณแต่ส่งออกเพียงครึ่งสาธารณะ รักษาไว้เช่นนั้น และอย่าวางกุญแจส่วนตัวในตั๋วเลย หากคีย์ถูกเข้ารหัส ให้เครื่องมือที่รองรับถามวลีรหัสผ่านแทนการวางไว้ในบรรทัดคำสั่งที่รายการโพรเซสอาจเปิดเผยได้
ipsec.secrets แบบเก่าหรือข้อมูลรับรอง swanctl
strongSwan มีเส้นทางข้อมูลรับรองที่ใช้กันทั่วไปสองทาง สแตก starter แบบเก่าอ่านรายการเฉพาะชนิดจากipsec.secretsและทุกรายการต้องระบุชนิดที่ถูกต้องสำหรับวัสดุ สแตก swanctl และ vici โหลดคีย์จากไดเรกทอรีข้อมูลรับรองของตนเองผ่านการตั้งค่าของตนเอง การแก้ไขไฟล์ที่ backend ที่ทำงานอยู่ไม่ได้อ่านไม่เปลี่ยนอะไร
: ECDSA "/etc/ipsec.d/private/server-key.pem"
ค้นหาว่า backend ใดทำงานจริง แล้ววางคีย์ไว้ที่ที่ backend นั้นมองคู่มือ strongSwan 5.9 ฉบับเก่ากำหนดรายการความลับเฉพาะชนิด และนี่ไม่ใช่เอกสารของ swanctl การผสมทั้งสองทำให้เกิดเดมอนที่ไม่สนใจไฟล์ที่ผู้ดูแลถือว่าเชื่อถือได้ การโหลดซ้ำที่ไม่รายงานข้อผิดพลาดหมายความเพียงว่าการตั้งค่าถูกแยกวิเคราะห์แล้ว
อ่านเหตุการณ์การโหลดและผลการยืนยันตัวตน
หลังการโหลดซ้ำที่ควบคุมได้ ให้อ่านเอาต์พุตการโหลดของเดมอนเองสำหรับคีย์ที่ระบุ ใบรับรองที่ระบุในดัมป์สถานะไม่ได้แสดงว่ากุญแจส่วนตัวถูกจับคู่กับมัน
หากไคลเอนต์ยังล้มเหลว ให้แยกเหตุการณ์ฝั่งเซิร์ฟเวอร์และข้อผิดพลาดฝั่งไคลเอนต์ออกจากกัน การตรวจสอบห่วงโซ่ การจับคู่อัตลักษณ์ และความเข้ากันได้ของวิธีการเป็นคำถามภายหลังที่มีหลักฐานของตัวเอง บันทึกผลลัพธ์พร้อมพาธคีย์ที่แน่นอนและไดเจสต์ที่คุณเปรียบเทียบ เพราะมิฉะนั้นกะถัดไปจะทำการโหลดซ้ำเดิม การเปลี่ยน CA ไม่ใช่การตอบสนองแรกต่อความไม่ตรงกันของตัวโหลด