हां, सबसे आम WPA- एंटरप्राइज़ कॉन्फ़िगरेशन PEAP या TTLS दोनों का उपयोग करता है, दोनों ही EAP पर 802.1X से अधिक TLS को लागू करते हैं।
आमतौर पर प्रमाणपत्र इस उद्देश्य के लिए नेटवर्क ऑपरेटरों द्वारा पहले से ही प्रकाशित किया जाता है। यह ऐसा कुछ नहीं है जिसके लिए उपयोगकर्ता को पूछना चाहिए ।
अफसोस की बात है कि 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
"प्रमाणपत्र ( सामान )" के पहले उदाहरण पर राइट-क्लिक करें और "चयनित पैकेट बाइट्स निर्यात करें" चुनें। Wireshark बाइनरी डीईआर प्रारूप में इसे एक फ़ाइल के रूप में बचाएगा। अन्य सभी प्रमाणपत्रों के लिए इसे दोहराएं। सबसे ऊपर वाले (RADIUS सर्वर की) जानकारी है जिसे आप कॉन्फ़िगर कर सकते हैं altsubject_match
; पिछले एक (रूट सीए) wpa_supplicant के रूप में दिया जाना चाहिए ca_cert
।
अब आपके पास बाइनरी डीईआर प्रारूप में कुछ *.crt
या *.der
फाइलें हैं। उन्हें "पाठ" प्रारूप में बदलें:
openssl x509 -inform DER < mycert.der > mycert.pem
(अपने wpa_supplicant टीएलएस हैंडलर से OpenSSL उपयोग कर रहा है, तो आप चाहिए यह "रूट सीए" प्रमाण पत्र देना है, यह काम नहीं करेगा सर्वर का प्रमाणपत्र दे रही है।
ध्यान दें कि यह भी संभव है कि Wireshark में देखा गया अंतिम प्रमाणपत्र रूट CA का नहीं होगा, लेकिन केवल आपकी निर्देशिका में मूल CA में से एक द्वारा जारी किया गया है/etc/ssl/certs
... यदि ऐसा है, तो निश्चित domain_suffix_match
रूप से सेट करना सुनिश्चित करें - अन्यथा, सार्वजनिक CA का उपयोग करना असुरक्षित होगा (802.1X दुर्भाग्य से नहीं जानता है कि "होस्टनाम" के खिलाफ सत्यापित करने के लिए, जिस तरह से HTTPS होगा।)