pfSense CA & FreeRADIUS 3 problem for Wireless AP WPA2 Enterprise & EAP-TLS machine authentication

  • Hi,

    I am trying to use pfSense to support EAP-TLS with WPA2-Enterprise (machine/device authentication, not user authentication) for wireless clients using FreeRADIUS and pfsense CA on my existing working pfSense server. I believe I have implemented the configuration correctly using a range of documentation and guides, but my initial testing with a standalone Windows 10 client is not going well. In future I also need to add Android and Apple IOS devices but want to get the Windows 10 clients working to prove the basic configuration before I go any further. I'd really appreciate any advice on where I am going wrong and have summarised below the steps I have followed, important bits of configuration and windows event log error entry:

    Main components:
    pfSense (2.4.3)
    Freeradius 3 package
    pfSense Certificate Authority
    Cisco enterprise access point
    Windows 10 Professional client

    Configuration Process:

    1. Existing pfSense router - Added FreeRadius3 package

    2. Created a new pfSense CA

    • 2048bit
    • sha256
    • common name: internalRootCA
    1. Created a new certificate for freeradius
    • 2048bit
    • sha256e
    • common name: radius.domain.local
      (I went with this naming convention to support a future move to an internal domain - was this an incorrect decision ? I've replaced the real domain name with domain.local for the purpose of this internet post)
    1. Created a new certificate for the Windows 10 Professional Client
    • 2048bit
    • sha256
    • common name: client001
    1. Freeradius configuration:
    • NAS/Clients

      • Added a entry for the Cisco Enterprise Wireless Access point
      • Shared secret etc
      • Most settings left default
    • Interface

      • Created a new interface for the Cisco Enterprise Wireless Access point to use
      • Most settings left default (Type - Authentication, Port 1812 etc)
    • Settings

      • Left default
    • EAP

      • Disable weak EAP types - Yes
      • Default EAP type - TLS
      • Ignore Unknown EAP Types - Yes
      • Certificates for TPS:
        • SSL CA Cert - internalRootCA selected
        • SSL Revocation List - internalRootCA Revocation List selected
        • SSL Server Certificate - radius.domain.local certificate selected
      • EAP-TLS
        • Left default
      • All other settings default
    • Users

      • None/Blank
    1. Configured Cisco Enterprise wireless access point to use the freeradius server with shared secret and created a SSID with WPA2 Enterprise.

    2. Exported the CA root certificate and imported into 'Trusted Root CA store' on the Windows 10 Client.

    • I also created a certificate from this CA for the pfSense web interface using this root CA and tested that the Windows 10 client is successfully trusting the root CA certificate i.e. no certificate trust errors in the web browser when accessing the web interface.
    1. Exported the Windows 10 Desktop Client and imported into the 'Certificates - Local Computer - Personal Store'

    I have checked the Microsoft 'Certificate requirements when you use EAP-TLS or PEAP with EAP-TLS' document and believe the configuration and details in the certificates meet these requirements. The only requirement I was unsure of was:

    • 'The Subject Alternative Name (SubjectAltName) extension in the certificate contains the user principal name (UPN) of the user'.
    • I want to do device/machine based EAP-TLS authentication therefore with no 'user' involvement. I believe Apple IOS devices may do this slightly differently and supply certificates in a user context which may require further configuration, but for now I'm focussing on Windows 10 device/machine authentication.
    1. Windows 10 Wireless network configuration
    • Created a manual wireless network profile
    • New SSID
    • WPA2 Enterprise
    • Authentication Type - Smart Card or other certificate
    • Use a certificate on this computer - Use simple certificate selection
    • Validate the server's identity by validating the certificate with the 'pfSense internalRootCA' certificate selected
    • Advanced Settings - 802.1x settings
      • Specify authentication mode - Computer Authentication Only

    Testing results:

    • When the Windows 10 client attempts to connect there are no errors/entries in the pfSense Freeradius logs - there are no entries to show any attempted authentication request. The Cisco Wireless Access point show the initial wireless client assocoation but shortly afterwards a disassocition. Finally the Windows 10 event log has the error below - my current assumption is that Windows is either expecting a different client certificate to use to authenticate, not happy with the client certificate I created or for some reason it is ignoring the client configuration to do 'Computer Authentication only' and not finding a certificate in the 'user' store.

    Windows 10 Professional Event Log - WLAN-Autoconfig Failure entry when attempting to connect to the wireless network.

    <Log START>
    Wireless 802.1x authentication failed.

    Network Adapter: Network Controller
    Interface GUID: {xxxxxx}
    Local MAC Address: xx:xx:xx:xx:xx:xx
    Network SSID: [NEW WPA2 Entperise SSID]
    BSS Type: Infrastructure
    Peer MAC Address: xx:xx:xx:xx:xx:xx
    Identity: host/client001
    Reason: Explicit Eap failure received
    Error: 0x40420110
    EAP Reason: 0x40420110
    EAP Root cause String: Network authentication failed due to a problem with the user account

    EAP Error: 0x40420110
    <Log END>

    I hope all the above information is useful and really appreciate any advice on what is going wrong.


Log in to reply