Tutorial: Issue Let's Encrypt SSL Certificates via the Access Server Web API, Including IP Address Certificates⁠

Overview⁠

This tutorial shows you how to use the Access Server Web API to request, install, and verify a browser-trusted Let’s Encrypt SSL certificate for the Admin Web UI and Client Web UI.

You can issue a certificate for either:

  • A fully qualified domain name (FQDN), such as vpn.example.com.

  • A public IP address, which lets you use a browser-trusted certificate without a domain name.

Access Server uses the ACME protocol to request the certificate from Let’s Encrypt. After you configure ACME, the Access Server ACME client also manages automatic renewal.

This tutorial demonstrates the Web API workflow by running requests locally with the sacli apicall command. You can also call the same Web API endpoints using cURL or the embedded Swagger UI. Refer to Tutorial: Test the New Web API (OpenAPI) in Access Server 3.0 for examples of each method.

Browser-trusted certificates also provide the trusted HTTPS foundation used in Zero Trust Network Access deployments.

Prerequisites⁠

Before you begin, ensure you have:

  • Access Server 3.1.0 or newer.

  • Console access and the ability to get root access.

  • Inbound access to TCP port 443.

  • A public IP address assigned to Access Server.

  • For an FQDN certificate, a domain name that resolves to the Access Server public IP address.

  • Optional: A remote computer if you want to run Web API requests with cURL or Swagger UI instead of sacli apicall.

Review the SSL Certificates reference for background information about web SSL certificates in Access Server.

Placeholder values⁠

Replace the following placeholder values with values for your environment:

Placeholder

Description

<ACCESS_SERVER_DOMAIN>

Access Server fully qualified domain name

<ACCESS_SERVER_IP>

Access Server public IP address

Certificate profiles, validity, and renewal⁠

Let’s Encrypt supports different certificate profiles with different validity periods.

  • The default certificate profile issues certificates that are valid for 90 days. Access Server begins automatic renewal after 60 days.

  • The shortlived certificate profile issues certificates that are valid for 160 hours, or approximately 6.7 days. Access Server begins automatic renewal after 3 days.

The shortlived profile is required when requesting a Let’s Encrypt IP address certificate. You can also use the shortlived profile when requesting a certificate for a domain name.

Choose a certificate type⁠

Choose the procedure that matches how users access your Access Server web interfaces.

Issue an SSL certificate for FQDN⁠

The Access Server ACME client uses Let’s Encrypt by default.

For domain validation, it uses the TLS-ALPN-01 challenge, which validates control of the domain over TLS port 443 without requiring port 80.

TLS-ALPN-01 doesn’t support wildcard certificates. If you need a wildcard certificate, use the Certbot tutorial instead.

Verify an FQDN certificate⁠

Verify the installed certificate from the browser and Admin Web UI. You can also verify it with the Web API or command-line tools.

Issue an SSL certificate for an IP address⁠

Let’s Encrypt supports IP address certificates, allowing Access Server to present a browser-trusted certificate without a domain name.

IP address certificates are valid for 160 hours, or just over 6 days, rather than the 90-day validity period used for standard domain certificates.

They use Let's Encrypt's shortlived certificate profile.

Verify an IP address certificate⁠

For an IP address certificate, verify that the IP address appears in the certificate’s Subject Alternative Name (SAN).

Unlike many domain certificates, an IP address certificate may not have a Common Name value.

Automatic renewal⁠

After ACME is configured, Access Server manages automatic certificate renewal.

Troubleshooting⁠

See also⁠