Skip to main content
Deploy certforge-connector as an Azure Container Instance (ACI) inside your VNet so it can reach F5 BIG-IP, Ribbon SBCs, and other devices on private management addresses. No inbound firewall rules are required — the connector makes outbound calls only.

Prerequisites

  • Azure subscription with Contributor rights on the resource group
  • An existing VNet that routes to the device management subnet
  • NSG rule allowing TCP from the ACI subnet to the device management port (443 by default)
  • A CertForge account with admin or operator role

Step 1 — Authenticate

The connector supports two authentication methods. mTLS is recommended — it connects directly to the CertForge agent endpoint on port 8443, bypassing Cloudflare. Run enrollment locally (not inside the container) on any machine with certforge-connector installed. In CertForge: Integrations → Connector Agents → + Enroll Agent → Connector — give it a label (e.g. azure-northcentralus) and copy the one-time token.
This writes three files to ./azure-creds/: Store the credentials in an Azure File Share so the container can mount them:
The container config in the steps below will mount this share at /etc/certforge-connector/creds.

Option B — API key (legacy)

In CertForge: Settings → API Keys → New Key (connector scope). Copy the key — shown once only. You will pass it as a secure environment variable in the steps below.

Step 2 — Prepare the subnet

ACI requires a subnet delegated exclusively to Microsoft.ContainerInstance/containerGroups. A dedicated subnet is cleaner than sharing one with other resources. In the Azure Portal go to Virtual networks → YOUR_VNET → Subnets → + Subnet:
A delegated subnet cannot contain other resource types (VMs, load balancers). Create a dedicated one.

Step 3 — Create the Container Instance

In the Azure Portal go to Container instances → + Create. Basics tab Networking tab Advanced tab — mTLS auth (Option A): Add environment variables: Add a volume mount for the Azure File Share: Advanced tab — API key auth (Option B, legacy): Add two environment variables: Set Restart policy to Always. Click Review + create, then Create. Deployment takes about 60–90 seconds.

Step 4 — Verify the connector is live

Once running, check the logs:
mTLS auth — expected output:
API key auth — expected output:
In CertForge, go to Integrations → Connector Agents — the agent should show a green Last seen timestamp within a minute.
If the container keeps restarting (ExitCode 1), check the logs for an auth error. The most common cause is a typo in the API key or wrong certificate path. Delete and recreate the container with the corrected values — environment variables on a running ACI instance cannot be edited in place.

Step 5 — Add the device in CertForge

With the connector inside the VNet, register the device using its private management IP:
  1. Go to Integrations → Network Devices → Add Device
  2. Set Type to f5, ribbon, or the appropriate driver
  3. Enter the private management IP and port
  4. Enter credentials and configure TLS settings
  5. Click Query Cert to confirm connectivity

Azure CLI equivalent

mTLS auth (Option A):
API key auth (Option B, legacy):
To update the container after a new release, delete and recreate it — ACI does not re-pull :latest on a running instance:

Rotating mTLS credentials

When the mTLS client certificate nears expiry, re-enroll locally and upload the new files to the Azure File Share:

Egress requirements

Environment variable reference