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 fully qualified domain name |
| 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
shortlivedcertificate 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
Tutorial: How to Use ACME Client to Issue Web SSL Certificates for the Access Server UI
Tutorial: Install a Let's Encrypt Wildcard SSL Certificate on Access Server with Certbot
Tutorial: How to Use ACME Client to Issue Web SSL Certificates for the Access Server UI
Tutorial: Test the New Web API (OpenAPI) in Access Server 3.0