Server Certificates

EAP Server Certificates

802.1X is a protocol used for secure authentication and authorization in computer networks. When implementing 802.1X authentication, the NAS and the client device both need to authenticate each other using digital certificates.

The server certificate is usually issued by a trusted third-party Certificate Authority (CA) and is signed using the CA's private key. When a client device connects to the network and attempts to authenticate itself, it receives the server certificate from the authentication server and checks the certificate's signature to ensure that it was issued by a trusted CA. If the certificate is valid, the client device can then proceed with the authentication process.

On EAP-TLS, EAPTTLS and EAP-PEAP the server and the clients encrypt data using the TLS protocol. Our TLS server supports both ECDSA and RSA certificates, automatically matching the certificate with client’s supported cipher suite (ECDHE_ECDSA, ECDHE_RSA, or RSA).

For testing purposes, SpherAAA can be configured to use TLS with self-signed certificates and keys.

Creating the Server and CA Certificate using CertGen

SpherAAA provides tools for the generation of server certificates. To generate the certificate, navigate to Configuration > Secure > CA Certificates page.

During the certificate generation, you can specify to which EAP-Type and environment you would like to apply this server certificate.

CertGen column provides several functions:

  • Generate client certificate using this CA.
  • Generate Server certificate using this CA.

Action colum provides:

  • Manage the SCEP Server for CA certificate.
  • Download CA public certificate (PEM file)
  • Remove CA certificate (not recoverable!)

Secure page

CA Certificates list (click for enlarge)

Server Certificates Action column provides several functions:

  • Modify assigned environment and EAP-Types
  • Download full certificate (PEM file), including server private key.
  • Remove certificate (not recoverable!)

Secure page

Certificates list (click for enlarge)

Next click to CA/CertGen - Generate Server Certificate button

Generate server certificate

Certificate import

Fill in the certificate details and click to generate.

SCEP

SpherAAA supports SCEP (Simple Certificate Enrollment Protocol) for automated certificate enrollment. When SCEP is enabled for a CA certificate, SpherAAA generates a unique SCEP URL for that CA, over both HTTP and HTTPS. Devices and MDM platforms use this URL to request and enroll certificates automatically, without an administrator having to generate and distribute them manually.

To enable SCEP:

  1. Go to Certificates > CA/SCEP.

  2. In the CA certificate's Action column, select Manage SCEP.

  3. Set a Challenge password. Devices must submit this challenge password with their enrollment request; SpherAAA rejects any request with a missing or incorrect challenge password.

  4. Click Update SCEP Settings. A SCEP URL and the CA's fingerprint (SHA-512) are shown, ready to use in your SCEP client/MDM configuration.

Example SCEP URL:
https://cloud.spheralogic.com/scep/1234567/6830a8e7521115fcc5a91f96/

Use this URL and the challenge password in your SCEP client configuration to enroll certificates automatically.

Certificates issued through SCEP count toward the account's EAP-TLS client limit, the same limit that applies to certificates generated manually from the dashboard. If that limit is reached, further SCEP enrollment requests are rejected until the limit is raised or existing client certificates are removed.

Allowing enrollment without a challenge password

Some device management platforms have no way to supply a challenge password at all. The most common case is Microsoft Intune's built-in "SCEP certificate" device configuration profile: its settings page has no field for a challenge password, because Intune's design assumes an on-premises NDES server reachable through an Intune Certificate Connector, which SpherAAA does not implement. Devices enrolled through that profile type submit a certificate request with no challenge password at all.

To support this, a CA can be configured to accept SCEP enrollment without a challenge password:

  1. Go to Certificates > CA/SCEP and select Manage SCEP for the CA.

  2. Check Allow enrollment without a challenge password.

  3. Click Update SCEP Settings.

!!! warning "Not safe for untrusted networks" With this option enabled, any device that can reach the CA's SCEP URL can enroll a certificate. There is no secret to prove it should be allowed to. Only enable this for a trusted or local-network deployment, or when your device management platform genuinely has no way to supply a challenge password (such as Intune's built-in SCEP profile without an Intune Certificate Connector).

If you need to keep challenge-password protection while enrolling Intune-managed Windows devices, configure Intune with a Settings Catalog / custom OMA-URI profile targeting the ./Vendor/MSFT/ClientCertificateInstall/SCEP CSP directly instead of the built-in SCEP profile template. That CSP exposes a Challenge setting where you can enter the same challenge password configured on the CA in SpherAAA. This requires configuring each SCEP parameter (subject name, SAN, key usage, root certificate, etc.) individually rather than through Intune's guided SCEP profile UI.

Troubleshooting enrollment: SCEP Logs

Every SCEP request SpherAAA handles, capability checks, CA certificate requests, and enrollment attempts, is recorded to Certificates > CA/SCEP > SCEP Logs (also linked from Logs & Reports). Each entry shows the CA, operation, message type, result (success/failure), a specific failure reason when applicable, transaction ID, serial number, client IP, and user agent. Log entries are kept for 48 hours.

Common failure reasons shown in the Detail column:

  • bad_challenge_password: the device submitted a challenge password, but it didn't match the one configured for the CA.
  • empty_challenge_password: the device submitted no challenge password at all (or an empty one). This is expected from platforms like Intune's built-in SCEP profile, see Allowing enrollment without a challenge password above.
  • unsupported_message_type: the request used a SCEP operation SpherAAA doesn't support.
  • A message mentioning the account's EAP-TLS client limit: the certificate was not issued because the subscription's EAP-TLS client limit has been reached.

Import / Create the Server and CA Certificate manually

  1. Generate a private key for the CA:

openssl genrsa 2048 > ca-key.pem

  1. Generate the X509 certificate for the CA:
openssl req -new -x509 -nodes -days 3650 \
   -key ca-key.pem \
   -out ca-cert.pem

Creating the Server's Certificate and Keys

  1. Generate the private key and certificate request:
openssl req -newkey rsa:2048 -nodes -days 3650 \
   -keyout server-key.pem \
   -out server-req.pem
  1. Generate the X509 certificate for the server:
openssl x509 -req -days 3650 -set_serial 01 \
   -in server-req.pem \
   -out server-cert.pem \
   -CA ca-cert.pem \
   -CAkey ca-key.pem

Creating the Client's Certificate and Keys

  1. Generate the private key and certificate request:
openssl req -newkey rsa:2048 -nodes -days 3650 \
   -keyout client-key.pem \
   -out client-req.pem
  1. Generate the X509 certificate for the client:
openssl x509 -req -days 3650 -set_serial 01 \
   -in client-req.pem \
   -out client-cert.pem \
   -CA ca-cert.pem \
   -CAkey ca-key.pem

Upload certificate files to SpherAAA for EAP-TTLS/PEAP/TLS

  1. Go to Configuration > Secure

  2. Click to Import Certificate

  3. We will upload self signed certificates to SpherAAA as following:

    • Server Cert Private key: server-key.pem
    • Server Certificate: server-cert.pem
    • Root Certs: ca-cert.pem

Cert Import

Certificate import
  1. After successful import, you are ready to accept TLS/TTLS or PEAP with SpherAAA.

EAP-TLS Client Certificates

EAP-TLS Clients

Certificates list (click for enlarge)

To utilize EAP-TLS, follow these steps:

Create a client certificate on the CA Certificates (CertGen) page. CertGen offers several options. You can have the generated certificate sent to your email either as an attachment or through a one-time URL in formats like PEM, PKCS12, or Apple Mobileconfig file.

Generate EAP-TLS client certificate<

Generate EAP-TLS client certificate

The generated client certificate needs to be installed on the client device. For the iOS, through Apple Device Configuration (.mobilconfig file). For Android, via the WifiManager API.

You can download the generated client certificate in a few ways:

  1. PEM - the standard format used by most applications and systems.
  2. PKCS12 - for platforms that require this specific format.
  3. Email attachment - the certificate is sent to your email.
  4. One-time URL - a link that lets you download the certificate once.

wpa_supplicant example

Use the configuration below with wpa_supplicant to test EAP-TLS authentication against your Wi-Fi network.

network={
         ssid="YOUR_SSID_NAME"
         scan_ssid=1
         key_mgmt=WPA-EAP
       # pairwise=CCMP TKIP
       # group=CCMP TKIP
         eap=TLS
         identity="user@example.com"
         private_key="/etc/cert/pkey.pem" #First part of PEM file
       # private_key_passwd="password" #Passhprase for protected key
         ca_cert="/etc/cert/ca.pem" #Middle part of PEM file
         client_cert="/etc/cert/client.pem" #Last part of PEM file
     }

RADSEC

The original RADIUS protocol is insecure. RADSEC wraps RADIUS in a TLS tunnel. See RFC 6614 for details. The SpherAAA RADSEC client supports TLSv1.2 and TLSv1.3.

This page covers two things:

  • Generating RADSEC client certificates for accessing SpherAAA over RADSEC (SpherAAA acting as a RADSEC server).
  • Importing and managing certificates for third-party AAA servers, used during dynamic peer discovery for RADSEC servers via EAP realm in PolicyLogic, or when manually adding a NAS server using NAS Configuration.

Client Certificates

Source IP address and shared secret are required for authentication verification, hence source address should be defined in NAS Configuration

To use RADSEC, please generate a client certificate. After certificate generation, the following has to be downloaded:

The client's private key and certificate are stored in a PEM file that must be downloaded.

Certificate revocation

Secure page

RADSEC Certificates list

Alternative CA Certificates

if your RADSEC client doesn't support client certificates, you can import your own CA certificate (public key) into SpherAAA, and it will include it in the list of trusted CAs.

Secure page

Import RADSEC CA

MikroTik example

  1. Upload RADSEC certficate to MikroTik using Files menu:

Secure page

MikroTik file upload
  1. Import certificate using System > Certificate

Secure page

Imported certificate
  1. In the RADIUS settings, create a new RADIUS Endpoint configuration as showing below:

  2. Service: depends on service

  3. Address:
  4. Protocol: radsec
  5. Secret: Shared secret from the NAS
  6. Timeout: at least 2000ms
  7. Certificate: choose certificat from the list

Secure page

RADIUS Radsec configuration

Third-Party AAA RADSEC Server Certificates

Use this area when SpherAAA must connect securely to an external AAA platform over RADSEC. You upload the peer credentials and trust chain so SpherAAA can open and validate TLS sessions to remote RADIUS/AAA services.

This setup is common in roaming and federation scenarios (for example, OpenRoaming or eduroam), especially when peers are discovered dynamically through DNS or when connecting two AAA servers over the public Internet, without requiring IPsec or a VPN.

What to import

  • Client private key - proves SpherAAA identity to the remote server.
  • Client certificate - sent by SpherAAA during TLS negotiation.
  • Root CA / intermediate CA chain - verifies the certificate presented by the remote AAA server.

Tip: provide the full CA chain whenever possible to prevent issuer-validation failures.

  1. Collect the required certificate files from the RADSEC server:
  2. Client private key
  3. Client certificate
  4. Server root CA / CA chain
  5. In SpherAAA, navigate to RADSEC > Third-Party AAA RADSEC Server Certificates, then select Import AAA Certificate.
  6. Keep CN/SAN verification enabled. Disable it only when required for a trusted peer that you control.
  7. For dynamically discovered peers, reference the imported certificate set in PolicyLogic.
  8. For manually configured peers, assign the imported credentials in NAS Configuration when the NAS entry is set as a RADIUS server.
  9. If SNI is required, use a hostname (FQDN) as the destination instead of an IP address.

Managing imported certificates

For existing third-party AAA RADSEC certificate entries, the following actions are available:

  • Download the certificate package
  • View certificate details
  • Revoke or re-enable a certificate
  • Remove a certificate entry

EAP-AKA/SIM Identity

To decrypt the EAP-AKA/SIM Identity, the EAP-AKA/SIM private key must be imported. This key will be used to obtain the cleartext IMSI. The private key must be in PEM format.

Additionally, the public key must be included in the carrier-bundle. The serial number of the public key is also needed. EapAkaIdentity function resolves the corespinding private key using serial number.

  • Server Cert Private key: Private key in PEM format
  • Serial number: Public key serial number

To activate a private key in a specific environment, choose the corresponding switch.

Secure page

EAP-AKA/SIM configration