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