Router Card WiFi Configuration


This how-to describes setting up the WiFi credentials and configuration of the Xaptum Router Card. After a WiFi Configuration is created or updated, the profile must be updated to use the new WiFi Configuration.

The router card can only be configured via the enfcli and ENF. Since there is no local, configuration page, it is nearly impossible for a malicious actor to misconfigure the WiFi – even with physical access.


  • enfcli needs to be installed. For help, see the Getting Started Tutorial
  • User has DOMAIN_ADMIN account
  • Commands are issued from enfcli
    > enfcli --host <client-domain> --user <admin@account>

Create the WiFi Configuration JSON file

The WiFi configuration is created as a JSON file and uploaded via the enfcli.

Using your favorite text editor, create the WiFi configuration JSON file. For this example, the file will be in ~/chicago-north.json
It should be in the format:

    "name" : "Chicago-North-Wifi",
    "description" : "Connects Chicago North Factory Floor",
    "networks" : [
        {   "name" : "Acme Mfg.",
            "SSID" : "AcmeHidden",
            "SSID_type" : "string",
            "auth" : {
                "type" : "psk",
                "passphrase" : "WileE.CoyoteGenius"
            "IPv4" : {
				"type" : "dhcp"
            "IPv6" : {
				"type" : "auto"

Create the WiFi configuration record

The JSON file informs the Captive Server how to create the configuration record that will be sent to the router-card. The JSON file must be uploaded via the enfcli.

> captive create-wifi-configuration --wifi-config-file=/home/jqpublic/chicago-north.json
Name          : Chicago-North-Wifi
Wifi ID       : 9e3f2a2e-e2ef-4152-8fa3-44b40ad1d258
WiFi Networks :
    Name          : Acme Mfg.
        SSID         : AcmeHidden
        SSID type    : string
        auth         : psk
        IPv4         : dhcp
        IPv6         : auto

To list the WiFi configurations:

> captive list-wifi-configurations
| ID                                   | Wifi Name          | Config Vers. |
| 9e3f2a2e-e2ef-4152-8fa3-44b40ad1d258 | Chicago-North-Wifi | 1            |

Assign WiFi Configuration to a Profile

Once the WiFi Configuration record is created, it must be assigned to a Profile in order for it to be applied to one or more devices.

This example uses the Profile that was created in the Router Card Profile example. To view that Profile, issue the following:

> captive get-profile --profile-id=70a82dd2-5a5a-40cb-9575-aaff5b7414dc
Name                  : TEST-devices
Profile ID            : 70a82dd2-5a5a-40cb-9575-aaff5b7414dc
Configuration version : 1
Firmware Update ID    : < not configured >
Mode                  : secure-host
Wifi config           : < not configured >

Now, update the profile using the new WiFi Configuration:

> captive update-profile --profile-id=70a82dd2-5a5a-40cb-9575-aaff5b7414dc --wifi-id=9e3f2a2e-e2ef-4152-8fa3-44b40ad1d258
Name                  : TEST-devices
Profile ID            : 70a82dd2-5a5a-40cb-9575-aaff5b7414dc
Configuration version : 2
Firmware Update ID    : < not configured >
Mode                  : secure-host
Wifi config           :
    id                : 9e3f2a2e-e2ef-4152-8fa3-44b40ad1d258
    domain            : 2607:8f80:8080::/48
    name              : Chicago-North-Wifi
    config version    : 1

As mentioned in the Router Card Profile article, an existing WiFi Configuration can be added to a profile in the create-profile command.

Didn't find what you were looking for?

Contact us and we’ll get back to you as soon as possible.

Contact Us