ใช่การกำหนดค่า WPA-Enterprise ที่พบมากที่สุดใช้ PEAP หรือ TTLS ทั้งการใช้ TLS ผ่าน EAP มากกว่า 802.1X
โดยปกติแล้วใบรับรองจะเผยแพร่ที่ใดก็ได้โดยผู้ให้บริการเครือข่ายเพื่อจุดประสงค์นี้ มันไม่ใช่สิ่งที่ผู้ใช้ควรต้องถามสำหรับ
น่าเศร้าที่ wpa_supplicant ไม่มีตัวเลือกในการถ่ายโอนใบรับรองแม้ในโหมดแก้ไขข้อบกพร่อง (ฉันจะอัปเดตสิ่งนี้หากฉันพบวิธีที่ดีกว่า) คุณยังสามารถตรวจสอบกระบวนการตรวจสอบสิทธิ์ EAPOL ที่แท้จริงได้ ก่อนอื่นให้ติดตั้ง Wireshark
ในขณะที่ตัดการเชื่อมต่อให้นำอินเทอร์เฟซขึ้นด้วยตนเองและเริ่มการจับภาพ:
$ sudo ip link set wlan0 up
$ wireshark -ki wlan0 &
เริ่ม wpa_supplicant และในไม่ช้าคุณจะเห็นการจับมือ TLS:
เซิร์ฟเวอร์จะส่งใบรับรองทันทีหลังจาก ServerHello เลือกแพ็กเก็ตแรกนั้นจากนั้นขุดเข้าไป:
802.1X
└─Extensible Authentication Protocol
└─Secure Sockets Layer
└─Handshake Protocol: Certificatte
└─Certificates
คลิกขวาที่อินสแตนซ์แรกของ "Certificate ( stuff )" และเลือก "Export bytes packet ที่เลือก" Wireshark จะบันทึกเป็นไฟล์ในรูปแบบไบนารี DER ทำซ้ำสำหรับใบรับรองอื่นทั้งหมด หนึ่งเยี่ยมยอด (RADIUS เซิร์ฟเวอร์) มีข้อมูลที่คุณสามารถกำหนดค่าในaltsubject_match
; สุดท้าย (root CA) ca_cert
ควรจะให้เป็น
ตอนนี้คุณมีไม่กี่*.crt
หรือ*.der
ไฟล์ในรูปแบบไบนารี DER แปลงเป็นรูปแบบ PEM "text":
openssl x509 -inform DER < mycert.der > mycert.pem
(หาก wpa_supplicant ของคุณใช้ OpenSSL เป็นตัวจัดการ TLS คุณต้องให้ใบรับรอง "root CA" โดยให้ใบรับรองของเซิร์ฟเวอร์นั้นใช้งานไม่ได้
โปรดทราบว่าอาจเป็นไปได้ว่าใบรับรองล่าสุดที่เห็นใน Wireshark จะไม่เป็นรูท CA แต่จะออกโดยหนึ่งในรูท CA ใน/etc/ssl/certs
ไดเรกทอรีของคุณ... หากเป็นกรณีนี้ให้ตั้งค่าdomain_suffix_match
ด้วย การใช้ CA สาธารณะจะไม่ปลอดภัย (802.1X น่าเสียดายที่ไม่ทราบว่า "ชื่อโฮสต์" เพื่อตรวจสอบว่าเป็นอย่างไรเช่น HTTPS)