Sim, as configurações WPA-Enterprise mais comuns usam PEAP ou TTLS, ambas implementando TLS sobre EAP sobre 802.1X.
Normalmente, o certificado já foi publicado em algum lugar pelos operadores de rede exatamente para esse fim. Não é algo que o usuário precise solicitar .
Infelizmente, o wpa_supplicant não tem uma opção para despejar os certificados, mesmo no modo de depuração. (Eu atualizarei isso se encontrar uma maneira melhor.) No entanto, você ainda pode monitorar o processo de autenticação EAPOL real. Primeiro, instale o Wireshark.
Enquanto desconectado, abra a interface manualmente e inicie uma captura nela:
$ sudo ip link set wlan0 up
$ wireshark -ki wlan0 &
Inicie o wpa_supplicant e em breve você verá o handshake TLS:
O servidor enviará seus certificados imediatamente após o ServerHello. Selecione o primeiro pacote desse tipo e, em seguida, procure:
802.1X
└─Extensible Authentication Protocol
└─Secure Sockets Layer
└─Handshake Protocol: Certificatte
└─Certificates
Clique com o botão direito do mouse na primeira instância de "Certificado ( material )" e escolha "Exportar bytes de pacote selecionados". O Wireshark o salvará como um arquivo, no formato DER binário. Repita isso para todos os outros certificados. O primeiro (servidor RADIUS) possui informações nas quais você pode configurar altsubject_match
; o último (autoridade de certificação raiz) deve ser fornecido ao wpa_supplicant como ca_cert
.
Agora você tem alguns *.crt
ou *.der
arquivos no formato DER binário. Converta-os no formato "texto" PEM:
openssl x509 -inform DER < mycert.der > mycert.pem
(Se o seu wpa_supplicant estiver usando o OpenSSL como o manipulador TLS, você deverá fornecer o certificado "CA raiz"; o certificado do servidor não funcionará.
Observe também que é possível que o último certificado visto no Wireshark não seja de uma autoridade de certificação raiz, mas apenas seja emitido por uma das autoridades de certificação raiz no seu /etc/ssl/certs
diretório ... Se for esse o caso, defina domain_suffix_match
também - caso contrário, o uso de autoridades de certificação públicas seria inseguro (o 802.1X infelizmente não sabe com que "nome de host" deve ser verificado, da mesma forma que o HTTPS.)