Tutorial: OpenVPN Connect Integration with Futurex CryptoHub⁠

Overview⁠

This tutorial shows how to store OpenVPN client certificates and private keys on a Futurex CryptoHub and use them with OpenVPN Connect through PKCS #11 integration.

By storing the private key on the CryptoHub, the key never resides in the OpenVPN profile or local file system, reducing the risk of credential theft and unauthorized VPN access.

Even if an attacker obtains a user's OpenVPN profile, they still need access to the Futurex CryptoHub configuration and the required PIN to authenticate successfully.

The goal of this integration is to provide hardware-backed protection for VPN client credentials and add an additional layer of security to VPN authentication.

Architecture overview⁠

In this integration:

  1. OpenVPN Connect uses a PKCS #11 module.

  2. The PKCS #11 module communicates with the Futurex CryptoHub.

  3. The client certificate and private key are stored on the CryptoHub.

  4. OpenVPN Connect uses the CryptoHub-hosted key to authenticate to Access Server.

This tutorial consists of the following phases:

  1. Deploy the OpenVPN Connect service in CryptoHub.

  2. Deploy a client endpoint.

  3. Install and validate the Futurex PKCS #11 module.

  4. Create an RSA certificate authority in Access Server.

  5. Generate a client profile and PKCS #12 package.

  6. Import the certificate and key into CryptoHub.

  7. Configure OpenVPN Connect to use the CryptoHub certificate.

  8. Test the VPN connection.

Prerequisites⁠

OpenVPN Connect requirements⁠

  • Windows or macOS

  • OpenVPN Connect 3.3 or newer

Access Server requirements⁠

  • Console access with root privileges

  • Admin Web UI access

CryptoHub requirements⁠

  • Futurex CryptoHub 7.0.3.x or newer

  • Platform Master Key loaded

  • Network configuration completed

  • Administrator access

Network requirements⁠

  • Connectivity from the OpenVPN Connect host to the CryptoHub

  • Outbound TCP 2001 allowed

  • CryptoHub reachable by FQDN or CIDR

  • CryptoHub exempt from TLS inspection or proxy filtering