Tutorial: Create OpenVPN Connect Bundled Client Installers Using the Web API⁠

Overview⁠

This tutorial shows how to create OpenVPN Connect bundled installers using the Access Server Web API.

A bundled installer combines the OpenVPN Connect application with a preconfigured connection profile, allowing users to install the client and import the profile in a single step.

You can generate bundled installers for:

  • Windows (.msi)

  • macOS (.dmg)

Prerequisites⁠

  • Access Server 3.1.0 or newer.

  • Root privileges on your Access Server's console.

  • (Optional) A remote machine for running API calls.

Step 1: Generate a bundled installer⁠

  1. Connect to the console and get root privileges.

  2. Run one of the following commands, depending on the installer and profile types you want to generate.

User-locked profile⁠

  • Windows installer (.msi)

    sacli --method POST --auth_token_user="<USER_NAME>" --url 'api/installer-url' --value '{"installer_type": "win_v3", "profile_type": "userlogin", "tls_crypt_v2": true}' apicall
  • macOS installer (.dmg)

    sacli --method POST --auth_token_user="<USER_NAME>" --url 'api/installer-url' --value '{"installer_type": "mac_v3", "profile_type": "userlogin", "tls_crypt_v2": true}' apicall

Auto-login profile⁠

  • Windows installer (.msi)

    sacli --method POST --auth_token_user="<USER_NAME>" --url 'api/installer-url' --value '{"installer_type": "win_v3", "profile_type": "autologin", "tls_crypt_v2": true}' apicall
  • macOS installer (.dmg)

    sacli --method POST --auth_token_user="<USER_NAME>" --url 'api/installer-url' --value '{"installer_type": "mac_v3", "profile_type": "autologin", "tls_crypt_v2": true}' apicall

Server-locked profile⁠

  • Windows installer (.msi)

    sacli --method POST --auth_token_user="<USER_NAME>" --url 'api/installer-url' --value '{"installer_type": "win_v3", "profile_type": "generic", "tls_crypt_v2": true}' apicall
  • macOS installer (.dmg)

    sacli --method POST --auth_token_user="<USER_NAME>" --url 'api/installer-url' --value '{"installer_type": "mac_v3", "profile_type": "generic", "tls_crypt_v2": true}' apicall

Generic ePKI profile⁠

  • Windows installer (.msi)

    sacli --method POST --auth_token_user="<USER_NAME>" --url 'api/installer-url' --value '{"installer_type": "win_v3", "profile_type": "epki-generic", "tls_crypt_v2": true}' apicall
  • macOS installer (.dmg)

    sacli --method POST --auth_token_user="<USER_NAME>" --url 'api/installer-url' --value '{"installer_type": "mac_v3", "profile_type": "epki-generic", "tls_crypt_v2": true}' apicall

Auto-login ePKI profile⁠

  • Windows installer (.msi)

    sacli --method POST --auth_token_user="<USER_NAME>" --url 'api/installer-url' --value '{"installer_type": "win_v3", "profile_type": "epki-autologin", "tls_crypt_v2": true}' apicall
  • macOS installer (.dmg)

    sacli --method POST --auth_token_user="<USER_NAME>" --url 'api/installer-url' --value '{"installer_type": "mac_v3", "profile_type": "epki-autologin", "tls_crypt_v2": true}' apicall

Result⁠

The API returns a temporary download URL for the bundled installer.

Example output:

"https://192.0.2.2/rest/GetInstallerViaToken?installer_type=win_v3&token=kF2FULkaNrMCJxQRdbzLGOjemMQZhSRq&tls-cryptv2=True"

Open the generated URL in a web browser, or use a download tool such as curl or wget to retrieve the installer.