Tak, najczęstsze konfiguracje WPA-Enterprise używają PEAP lub TTLS, obie implementują TLS przez EAP przez 802.1X.
Zwykle certyfikat jest już gdzieś publikowany przez operatorów sieci właśnie w tym celu. To nie jest coś, o co użytkownik powinien poprosić .
Niestety wpa_supplicant nie ma opcji zrzucania certyfikatów nawet w trybie debugowania. (Zaktualizuję to, jeśli znajdę lepszy sposób.) Nadal jednak możesz monitorować faktyczny proces uwierzytelniania EAPOL. Najpierw zainstaluj Wireshark.
Po odłączeniu uruchom interfejs ręcznie i rozpocznij przechwytywanie:
$ sudo ip link set wlan0 up
$ wireshark -ki wlan0 &
Uruchom wpa_supplicant, a wkrótce zobaczysz uzgadnianie TLS:
Serwer wyśle swoje certyfikaty natychmiast po ServerHello. Wybierz pierwszy taki pakiet, a następnie kop w:
802.1X
└─Extensible Authentication Protocol
└─Secure Sockets Layer
└─Handshake Protocol: Certificatte
└─Certificates
Kliknij prawym przyciskiem myszy pierwsze wystąpienie „Certyfikatu ( rzeczy )” i wybierz „Eksportuj wybrane bajty pakietów”. Wireshark zapisze go jako plik w binarnym formacie DER. Powtórz to dla wszystkich innych certyfikatów. Najwyższy (serwer RADIUS) zawiera informacje, które można skonfigurować altsubject_match
; ostatni (główny urząd certyfikacji) należy przekazać wpa_supplicant as ca_cert
.
Teraz masz kilka *.crt
lub *.der
pliki w formacie binarnym DER. Konwertuj je na format „tekstowy” PEM:
openssl x509 -inform DER < mycert.der > mycert.pem
(Jeśli Twój wpa_supplicant używa OpenSSL jako modułu obsługi TLS, musisz nadać mu certyfikat „głównego urzędu certyfikacji”; nadanie mu certyfikatu serwera nie będzie działać.
Uwaga: możliwe jest również, że ostatni certyfikat widziany w Wireshark nie będzie z głównego urzędu certyfikacji, ale wystawiony tylko przez jeden z głównych urzędów certyfikacji w /etc/ssl/certs
katalogu ... W takim przypadku należy również ustawić domain_suffix_match
- w przeciwnym razie używanie publicznych urzędów certyfikacji byłoby niepewne (802.1X niestety nie wie, przed jaką „nazwą hosta” sprawdzić, jak np. HTTPS).