Sim, as configurações mais comuns do WPA-Enterprise usam o PEAP ou o TTLS, ambos implementando o TLS sobre o EAP sobre o 802.1X.
Normalmente, o certificado já é publicado em algum lugar pelos operadores de rede exatamente para esse propósito. Não é algo que o usuário deve pedir .
Infelizmente, o wpa_supplicant não tem uma opção para descarregar os certificados, mesmo no modo de depuração. (Eu atualizarei isso se eu encontrar uma maneira melhor.) Você ainda pode monitorar o processo de autenticação EAPOL real, no entanto. Primeiro, instale o Wireshark.
Enquanto estiver desconectado, leve a interface manualmente e inicie uma captura:
$ sudo ip link set wlan0 up
$ wireshark -ki wlan0 &
Inicie o wpa_supplicant e logo você verá o handshake TLS:
OservidorenviaráseuscertificadosimediatamenteapósoServerHello.Selecioneoprimeirodessespacotese,emseguida,mergulheem:
802.1X└─ExtensibleAuthenticationProtocol└─SecureSocketsLayer└─HandshakeProtocol:Certificatte└─Certificates
Cliquecomobotãodireitodomousenaprimeirainstânciade"Certificado ( material )" e escolha "Exportar bytes de pacote selecionados". O Wireshark irá salvá-lo como um arquivo, no formato DER binário. Repita isso para todos os outros certificados. O mais alto (servidor RADIUS) tem informações que você pode configurar em altsubject_match
; o último (CA raiz) deve ser dado ao wpa_supplicant como ca_cert
.
Agora você tem alguns arquivos *.crt
ou *.der
no formato DER binário. Converta-os para o formato "texto" do PEM:
openssl x509 -inform DER < mycert.der > mycert.pem
(Se o seu wpa_supplicant estiver usando o OpenSSL como o manipulador de TLS, você deve dar a ele o certificado da "CA raiz", dando a ele o certificado do servidor.
Observe que também é possível que o último certificado visto no Wireshark não seja de uma CA raiz, mas apenas emitido por uma das CAs raiz no diretório /etc/ssl/certs
... esse é o caso, não se esqueça de definir domain_suffix_match
- caso contrário, usar CAs públicas seria inseguro (802.1X infelizmente não sabe para qual "hostname" verificar, como, por exemplo, HTTPS.)