Tutorial: Install a Let's Encrypt Wildcard SSL Certificate on Access Server with Certbot⁠

Overview⁠

OpenVPN Access Server secures the Admin Web UI and Client Web UI with an SSL/TLS certificate. A new installation generates a self-signed certificate so you can access these web interfaces immediately. Although the connection is encrypted, browsers can’t automatically verify the server’s identity and display a certificate warning.

Replacing the self-signed certificate with a trusted SSL certificate gives Access Server a browser-verifiable identity and removes these warnings. For more information about how Access Server uses web certificates, refer to Web SSL Certificates. Web SSL certificates are separate from the certificates Access Server uses for VPN connections. Changing the web certificate doesn’t affect VPN certificates.

This tutorial shows how to use Certbot to request and install a browser-trusted Let’s Encrypt certificate for Access Server. It includes:

  • A standard certificate for one hostname.

  • A wildcard SSL certificate for a hostname and its subdomains.

  • The recommended DNS-01 challenge workflow.

  • An HTTP-01 alternative.

  • A Certbot deploy hook that installs each issued or renewed certificate in Access Server.

  • Verification of Certbot automatic renewal through a systemd timer.

For organizations implementing a Zero Trust Network Access strategy, replacing the self-signed certificate is an important hardening step because a browser-trusted certificate provides users and administrators with a verifiable identity for the Access Server web interfaces.

Prerequisites⁠

  • An installed Access Server.

  • Console access and the ability to get root access.

  • A fully qualified domain name, such as vpn.example.com, that users can resolve to your Access Server.

  • Control of the domain's DNS records.

  • A valid email address for Let's Encrypt expiration and account notifications.

  • The domain configured in the Admin Web UI under VPN Server → Network Settings → DNS hostname (or IP address).

  • For the DNS-01 challenge, API credentials for a supported DNS provider.

Before you begin: Choose an ACME challenge⁠

Certbot proves that you control a domain by completing an ACME challenge. Choose the method that matches your deployment before installing and configuring Certbot.

Challenge

Inbound port

Wildcard certificate

Best for

DNS-01 (recommended)

No inbound port required

Yes

Most Access Server deployments, including servers behind firewalls or load balancers, and deployments that need a wildcard SSL certificate.

HTTP-01

TCP 80

No

Servers where port 80 is publicly reachable and available for Certbot's temporary listener.

TLS-ALPN-01

TCP 443

No

Deployments using Access Server's built-in ACME client.

The DNS-01 challenge verifies domain control by creating a DNS TXT record. It doesn't require the Access Server web service to be reachable from the internet and is the only Let's Encrypt challenge that supports wildcard certificates.

If you aren't sure which method to use, choose DNS-01.

Example values used in this tutorial

Placeholder

Example

Access Server hostname

vpn.example.com

Wildcard domain

*.vpn.example.com

Let's Encrypt email

admin@example.com

Certificate name

vpn.example.com

Deploy hook

/usr/local/sbin/openvpnas-deploy.sh

Replace these values with those for your environment.