Add a managed network
Cloudflare WARP allows you to selectively apply WARP client settings if the device is connected to a secure network location such as an office. To determine network location, the WARP client detects a TLS endpoint on your network and validates its certificate against an uploaded SHA-256 fingerprint. The TLS certificate can be hosted by any device on your network.
Create a TLS endpoint
If your network already has a host serving a TLS certificate, skip ahead to add the network on the Zero Trust dashboard. Otherwise, follow these instructions to generate a new TLS endpoint:
Create a local certificate:
$ openssl req -x509 -newkey rsa:4096 -sha256 -days 3650 -nodes -keyout example.key -out example.pem -subj "/CN=example.com" -addext "subjectAltName=DNS:example.com"The command will output a PEM certificate and key. Store these files in a secure place.
Run a simple HTTPS server to host the certificate:
Create a Python 3 script called
myserver.py
:myserver.py
import ssl, http.serverserver = http.server.HTTPServer(('0.0.0.0', 4443), http.server.SimpleHTTPRequestHandler)sslcontext = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH)sslcontext.load_cert_chain(certfile='./example.pem', keyfile='./example.key')server.socket = sslcontext.wrap_socket(server.socket, server_side=True)server.serve_forever()Run the script:
$ python3 myserver.py
Extract the SHA-256 fingerprint
To obtain the SHA-256 fingerprint of a certificate:
$ openssl x509 -noout -fingerprint -sha256 -inform pem -in example.pem | tr -d :
The output will look something like:
SHA256 Fingerprint=DD4F4806C57A5BBAF1AA5B080F0541DA75DB468D0A1FE731310149500CCD8662
Add managed network to the Zero Trust dashboard
In the Zero Trust dashboard, go to Settings > WARP Client.
Scroll down to Network locations and select Add new.
Name your network location.
In Host and Port, enter the private IP address and port number of the TLS endpoint (for example,
192.168.185.198:4443
).The example TLS endpoint created above would use the IP of the device running the Python script and the port configured for the HTTPS server.
In TLS Cert SHA-256, enter the SHA-256 fingerprint of the TLS certificate.
You can now create a settings profile for devices on this network. In the rule builder, the network name will appear when you choose the Managed network selector.
Every time a device in your organization connects to a network (for example, when waking up the device or changing WiFi networks), the WARP client will determine its network location and apply the corresponding settings profile.