Close Menu
    Facebook X (Twitter) Instagram
    Command Linux
    • About
    • How to
      • Q&A
    • OS
      • Windows
      • Arch Linux
    • AI
    • Gaming
      • Easter Eggs
    • Statistics
    • Blog
      • Featured
    • MORE
      • IP Address
      • Man Pages
    • Write For Us
    • Contact
    Command Linux
    Home - man page - WPA_SUPPLICANT.CONF

    WPA_SUPPLICANT.CONF

    WillieBy WillieFebruary 25, 2026Updated:February 25, 2026No Comments3 Mins Read

     

    NAME

    wpa_supplicant.conf – configuration file for wpa_supplicant  

    OVERVIEW

    wpa_supplicant is configured using a text file that lists all accepted networks and security policies, including pre-shared keys. See the example configuration file, probably in /usr/share/doc/wpa_supplicant/, for detailed information about the configuration format and supported fields.

    All file paths in this configuration file should use full (absolute, not relative to working directory) path in order to allow working directory to be changed. This can happen if wpa_supplicant is run in the background.

    Changes to configuration file can be reloaded be sending SIGHUP signal to wpa_supplicant (‘killall -HUP wpa_supplicant’). Similarly, reloading can be triggered with the wpa_cli reconfigure command.

    Configuration file can include one or more network blocks, e.g., one for each used SSID. wpa_supplicant will automatically select the best network based on the order of network blocks in the configuration file, network security level (WPA/WPA2 is preferred), and signal strength.  

    QUICK EXAMPLES

    1.
    WPA-Personal (PSK) as home network and WPA-Enterprise with EAP-TLS as work network.

    # allow frontend (e.g., wpa_cli) to be used by all users in ‘wheel’ group
    ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=wheel
    #
    # home network; allow all valid ciphers
    network={
            ssid="home"
            scan_ssid=1
            key_mgmt=WPA-PSK
            psk="very secret passphrase"
    }
    #
    # work network; use EAP-TLS with WPA; allow only CCMP and TKIP ciphers
    network={
            ssid="work"
            scan_ssid=1
            key_mgmt=WPA-EAP
            pairwise=CCMP TKIP
            group=CCMP TKIP
            eap=TLS
            identity="[email protected]"
            ca_cert="/etc/cert/ca.pem"
            client_cert="/etc/cert/user.pem"
            private_key="/etc/cert/user.prv"
            private_key_passwd="password"
    }
    
    2.
    WPA-RADIUS/EAP-PEAP/MSCHAPv2 with RADIUS servers that use old peaplabel (e.g., Funk Odyssey and SBR, Meetinghouse Aegis, Interlink RAD-Series)

    ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=wheel
    network={
            ssid="example"
            scan_ssid=1
            key_mgmt=WPA-EAP
            eap=PEAP
            identity="[email protected]"
            password="foobar"
            ca_cert="/etc/cert/ca.pem"
            phase1="peaplabel=0"
            phase2="auth=MSCHAPV2"
    }
    
    3.
    EAP-TTLS/EAP-MD5-Challenge configuration with anonymous identity for the unencrypted use. Real identity is sent only within an encrypted TLS tunnel.

    ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=wheel
    network={
            ssid="example"
            scan_ssid=1
            key_mgmt=WPA-EAP
            eap=TTLS
            identity="[email protected]"
            anonymous_identity="[email protected]"
            password="foobar"
            ca_cert="/etc/cert/ca.pem"
            phase2="auth=MD5"
    }
    
    4.
    IEEE 802.1X (i.e., no WPA) with dynamic WEP keys (require both unicast and broadcast); use EAP-TLS for authentication

    ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=wheel
    network={
            ssid="1x-test"
            scan_ssid=1
            key_mgmt=IEEE8021X
            eap=TLS
            identity="[email protected]"
            ca_cert="/etc/cert/ca.pem"
            client_cert="/etc/cert/user.pem"
            private_key="/etc/cert/user.prv"
            private_key_passwd="password"
            eapol_flags=3
    }
    
    5.
    Catch all example that allows more or less all configuration modes. The configuration options are used based on what security policy is used in the selected SSID. This is mostly for testing and is not recommended for normal use.

    ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=wheel
    network={
            ssid="example"
            scan_ssid=1
            key_mgmt=WPA-EAP WPA-PSK IEEE8021X NONE
            pairwise=CCMP TKIP
            group=CCMP TKIP WEP104 WEP40
            psk="very secret passphrase"
            eap=TTLS PEAP TLS
            identity="[email protected]"
            password="foobar"
            ca_cert="/etc/cert/ca.pem"
            client_cert="/etc/cert/user.pem"
            private_key="/etc/cert/user.prv"
            private_key_passwd="password"
            phase1="peaplabel=0"
            ca_cert2="/etc/cert/ca2.pem"
            client_cert2="/etc/cer/user.pem"
            private_key2="/etc/cer/user.prv"
            private_key2_passwd="password"
    }
    
    6.
    Authentication for wired Ethernet. This can be used with wired or roboswitch interface (-Dwired or -Droboswitch on command line).

    ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=wheel
    ap_scan=0
    network={
            key_mgmt=IEEE8021X
            eap=MD5
            identity="user"
            password="password"
            eapol_flags=0
    }
    
     

    CERTIFICATES

    Some EAP authentication methods require use of certificates. EAP-TLS uses both server side and client certificates whereas EAP-PEAP and EAP-TTLS only require the server side certificate. When client certificate is used, a matching private key file has to also be included in configuration. If the private key uses a passphrase, this has to be configured in wpa_supplicant.conf ("private_key_passwd").

    wpa_supplicant supports X.509 certificates in PEM and DER formats. User certificate and private key can be included in the same file.

    If the user certificate and private key is received in PKCS#12/PFX format, they need to be converted to suitable PEM/DER format for wpa_supplicant. This can be done, e.g., with following commands:

    # convert client certificate and private key to PEM format
    openssl pkcs12 -in example.pfx -out user.pem -clcerts
    # convert CA certificate (if included in PFX file) to PEM format
    openssl pkcs12 -in example.pfx -out ca.pem -cacerts -nokeys
    
     

    Willie
    • Website

    Willie has over 15 years of experience in Linux system administration and DevOps. After managing infrastructure for startups and enterprises alike, he founded Command Linux to share the practical knowledge he wished he had when starting out. He oversees content strategy and contributes guides on server management, automation, and security.

    Related Posts

    OPENDIR

    April 21, 2026

    TAIL

    April 21, 2026

    OPERATOR

    April 21, 2026

    NANO

    April 21, 2026
    Top Posts

    CD-CREATE-PROFILE

    February 14, 2026

    Apoint.exe: Purpose, Problems, and Repair Methods

    March 11, 2026

    TRACEROUTE

    March 1, 2026

    Google Underwater Easter Egg

    January 6, 2026
    • Home
    • Contact Us
    • Privacy Policy
    • Terms of Use

    Type above and press Enter to search. Press Esc to cancel.