1. Check who manages Wi-Fi
Run nmcli device status if NetworkManager is installed. If it manages your interface, configure it there. Raspberry Pi OS Bookworm and newer use NetworkManager by default; boot-partition file import is not a universal setup method.
2. Protect the file
Download privately. On the target device, use chmod 600 wpa_supplicant.conf. Copy it only to the config path your existing service actually reads, with root ownership. Protect client private keys too. Keep a secured backup of your working configuration.
3. Plan for disconnection
Use a local console or backup Ethernet connection. After checking your service and interface, an administrator can use sudo wpa_cli -i wlan0 reconfigure if its control socket is available. Replace wlan0 with the actual interface. This can disconnect you; do not restart Wi-Fi blindly over SSH.
4. Verify on the device
Inspect wpa_cli -i wlan0 status and your distribution's service logs locally. Association does not configure DHCP or DNS. Install administrator-provided certificates at the specified target paths. Never disable CA verification to make enterprise Wi-Fi work.
Supported baseline & limitations
Targets upstream wpa_supplicant 2.10, infrastructure client mode on Linux. Includes WPA2-PSK, SAE, transition, open, EAP-TLS, PEAP and TTLS. WPA3 needs a compatible build, driver, firmware and access point. PEAP/TTLS inner methods and OCSP depend on your authentication server and TLS backend. Ask your administrator for exact settings.
Not an exhaustive editor: no WEP, WPA1, TKIP, WPS, AP/mesh, Passpoint, DPP, EAP-SIM, Suite-B, arbitrary directives, or automatic deployment. No certificate upload. Parser acceptance does not establish certificate validity, security policy compliance, or a successful hardware connection.
Text SSIDs use UTF-8; hex input supports arbitrary bytes. WPA2 passphrases are 8-63 printable ASCII characters; this app derives their PSK locally using PBKDF2-HMAC-SHA1 (4096 rounds). SAE-only allows 1-128 UTF-8 bytes as an app safety limit. Backslashes and quotes are preserved with hex encoding where necessary, not JSON escaping.
Privacy & trusted references
No analytics, remote APIs, third-party scripts, cookies, localStorage, URL credentials, service worker, or credential logs. Inputs live only in the current page; browser features and extensions are outside this app's control. The hosting provider still receives ordinary page requests. HTTPS is required for clipboard and local key derivation.
Based on the official 2.10 configuration reference, upstream examples, and Raspberry Pi configuration documentation. Source & installation guide.