Có, các cấu hình WPA-Enterprise phổ biến nhất sử dụng PEAP hoặc TTLS, cả hai đều thực hiện TLS trên EAP trên 802.1X.
Thông thường chứng chỉ đã được xuất bản ở đâu đó bởi các nhà khai thác mạng cho chính xác mục đích này. Đó không phải là thứ mà người dùng nên yêu cầu .
Đáng buồn thay, wpa_supplicant không có tùy chọn để đổ chứng chỉ ngay cả trong chế độ gỡ lỗi. (Tôi sẽ cập nhật điều này nếu tôi tìm thấy một cách tốt hơn.) Tuy nhiên, bạn vẫn có thể theo dõi quá trình xác thực EAPOL thực tế. Đầu tiên, cài đặt Wireshark.
Trong khi ngắt kết nối, hãy đưa giao diện lên một cách thủ công và bắt đầu chụp trên đó:
$ sudo ip link set wlan0 up
$ wireshark -ki wlan0 &
Bắt đầu wpa_supplicant và bạn sẽ sớm thấy bắt tay TLS:
Máy chủ sẽ gửi chứng chỉ của nó ngay sau ServerHello. Chọn gói đầu tiên như vậy, sau đó đào sâu vào:
802.1X
└─Extensible Authentication Protocol
└─Secure Sockets Layer
└─Handshake Protocol: Certificatte
└─Certificates
Nhấp chuột phải vào phiên bản đầu tiên của "Chứng chỉ ( công cụ )" và chọn "Xuất byte gói được chọn". Wireshark sẽ lưu nó dưới dạng tệp, ở định dạng DER nhị phân. Lặp lại điều này cho tất cả các chứng chỉ khác. Phần trên cùng (máy chủ RADIUS) có thông tin mà bạn có thể định cấu hình altsubject_match
; cái cuối cùng (CA gốc) nên được trao cho wpa_supplicant là ca_cert
.
Bây giờ bạn có một vài *.crt
hoặc *.der
tệp ở định dạng DER nhị phân. Chuyển đổi chúng sang định dạng "văn bản" PEM:
openssl x509 -inform DER < mycert.der > mycert.pem
(Nếu wpa_supplicant của bạn đang sử dụng OpenSSL làm trình xử lý TLS, bạn phải cung cấp cho nó chứng chỉ "CA gốc"; chứng chỉ của máy chủ sẽ không hoạt động.
Lưu ý rằng cũng có thể chứng chỉ cuối cùng nhìn thấy trong Wireshark sẽ không phải là CA gốc, mà chỉ được cấp bởi một trong các CA gốc trong /etc/ssl/certs
thư mục của bạn ... Nếu đó là trường hợp, hãy chắc chắn đặt domain_suffix_match
cả - nếu không, sử dụng CA công cộng sẽ không an toàn (rất tiếc, không may là không biết "tên máy chủ" để xác minh, ví dụ như HTTPS sẽ làm gì.)