Так, найбільш поширені конфігурації 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
Клацніть правою кнопкою миші перший екземпляр "Сертифікат ( речі )" та виберіть "Експорт вибраних байтів пакетів". Wireshark збереже його у файлі у форматі ДЕРЖ. Повторіть це для всіх інших сертифікатів. На верхньому (сервер RADIUS) є інформація, яку можна налаштувати altsubject_match
; останній (кореневий CA) повинен бути наданий wpa_supplicant як ca_cert
.
Тепер у вас є кілька файлів *.crt
або *.der
файлів у двійковому форматі DER. Перетворити їх у формат тексту "PEM":
openssl x509 -inform DER < mycert.der > mycert.pem
(Якщо ваш wpa_supplicant використовує OpenSSL як обробник TLS, ви повинні надати йому сертифікат "root CA"; надання йому сертифікату сервера не працюватиме.
Зверніть увагу, що також можливо, що останній сертифікат, помічений у Wireshark, не буде кореневим CA, а видається лише одним із кореневих ЦС у вашому /etc/ssl/certs
каталозі ... Якщо це так, обов'язково встановіть domain_suffix_match
інакше - інакше, використання громадських ЦО було б небезпечно (802.1X, на жаль, не знає, яке "ім'я хоста" перевірити, як, наприклад, HTTPS.)