SSL/TLS
Basics of enabling TLS
Use Transport Layer Security (TLS) to encrypt traffic between the load balancer and clients, and between the load balancer and the backend servers. TLS is the successor to the deprecated Secure Sockets Layer (SSL) protocol. It’s the technology that allows you to serve a website over HTTPS.
Client-side TLS Jump to heading
In this section, you’ll learn how to configure TLS between clients and the load balancer. Your version determines which configuration directives you should use. This table explains where to go:
| Product version | Go to… |
|---|---|
|
Use crt-store with ssl-f-use |
|
Use crt-store with crt |
|
Use crt-list or Use crt alone |
Use crt-store with ssl-f-use Jump to heading
This section applies to:
- HAProxy 3.2 and newer
- HAProxy Enterprise 3.2r1 and newer
- HAProxy ALOHA 17.5 and newer
Add a crt-store configuration section to define the file system locations of your TLS certificates and keys. Then, in a frontend section, use those files with ssl-f-use directives. This is the modern way to configure TLS, although we cover older ways — using crt and crt-list — on this page too.
The crt-store configuration section separates the declarations of where certificates are stored from their use in a frontend. Its purpose is to provide additional flexibility and ease of use compared to older methods. It was added in HAProxy 3.0 / HAProxy Enterprise 3.0r1 / HAProxy ALOHA 16.5, but it wasn’t until the addition of the ssl-f-use directive in HAProxy 3.2 / HAProxy Enterprise 3.2r1 / HAProxy ALOHA 17.5 that it qualified as a full solution. Prior to that, you could use crt-store with crt.
To load certificates with crt-store and use them in a frontend with the ssl-f-use directive, follow these steps:
-
Define a
crt-storesection in your load balancer configuration. Acrt-storelets you specify the file system locations of X.509 public certificates and private keys. These files should be in PEM format. In this example, we define acrt-storethat loads several TLS files.haproxycrt-store my_tls_files# Set parent directoriescrt-base /etc/haproxy/ssl/certs/key-base /etc/haproxy/ssl/private/# Load a PEM-formatted file that contains the certificate and keyload crt "foo.pem"# Load separate PEM-formatted certificate and key filesload crt "bar.crt" key "bar.key"# Assign an alias to this lineload crt "baz.pem" alias "baz"haproxycrt-store my_tls_files# Set parent directoriescrt-base /etc/haproxy/ssl/certs/key-base /etc/haproxy/ssl/private/# Load a PEM-formatted file that contains the certificate and keyload crt "foo.pem"# Load separate PEM-formatted certificate and key filesload crt "bar.crt" key "bar.key"# Assign an alias to this lineload crt "baz.pem" alias "baz"- The
crt-storekeyword declares a new section with the namemy_tls_files. You’ll use that name when using these files. - The
crt-basedirective sets the directory to search for TLS certificate files. - The
key-basedirective sets the directory to search for TLS private key files. An advantage thatcrt-storehas over older ways is that you don’t need to keep keys in the same directory as certificates if you split them out. - The
loaddirectives set files to load into memory. You can load a certificate and its key as one file using thecrtargument, or separately with thecrtandkeyarguments.
- The
-
In your
frontendsection, add ansslargument to yourbinddirective to enable TLS. Addssl-f-usedirectives that refer to the files loaded in thecrt-storesection.haproxyfrontend examplebind :443 sslssl-f-use crt "@my_tls_files/foo.pem"ssl-f-use crt "@my_tls_files/bar.crt"ssl-f-use crt "@my_tls_files/baz"default_backend webservershaproxyfrontend examplebind :443 sslssl-f-use crt "@my_tls_files/foo.pem"ssl-f-use crt "@my_tls_files/bar.crt"ssl-f-use crt "@my_tls_files/baz"default_backend webservers- The
binddirective needs only ansslargument. - Each
ssl-f-usedirective refers to aloadline from thecrt-store. Theloaddirective’scrtargument acts as a reference key. You can also set an alias, as shown for the lastloaddirective, which uses the aliasbaz. - Since we’ve specified more than one
ssl-f-usedirective, the load balancer chooses the appropriate certificate for the current request based on Server Name Indication (SNI). This allows you to host multiple websites with different domain names at the same IP address and port. Each request will use the certificate that matches the domain name being requested.
- The
-
Optional: Add additional arguments to your
binddirective to set TLS options. The arguments affect all of the loaded certificates. Set any of the arguments explained in the bind options configuration reference. You can also add arguments to yourssl-f-usedirectives to set TLS options. The arguments can be different for eachssl-f-useline and they override those set on thebinddirective for the given certificate. Set any of the arguments explained in the ssl-f-use configuration reference.For example, here we add the TLS option for
ssl-min-veron thebinddirective. The secondssl-f-usedirective overrides it with its own value.haproxyfrontend examplebind :443 ssl ssl-min-ver TLSv1.2ssl-f-use crt "@my_tls_files/foo.pem"ssl-f-use crt "@my_tls_files/bar.crt" ssl-min-ver TLSv1.3default_backend webservershaproxyfrontend examplebind :443 ssl ssl-min-ver TLSv1.2ssl-f-use crt "@my_tls_files/foo.pem"ssl-f-use crt "@my_tls_files/bar.crt" ssl-min-ver TLSv1.3default_backend webservers -
Optional: To set a default certificate when SNI doesn’t match any certificate, add the
default-crtargument to abindline in your frontend, specifying the location of one of your certificates.haproxyfrontend examplebind :443 ssl default-crt "@my_tls_files/foo.pem"ssl-f-use crt "@my_tls_files/foo.pem"ssl-f-use crt "@my_tls_files/bar.crt"default_backend webservershaproxyfrontend examplebind :443 ssl default-crt "@my_tls_files/foo.pem"ssl-f-use crt "@my_tls_files/foo.pem"ssl-f-use crt "@my_tls_files/bar.crt"default_backend webserversIf you need to support clients that can accept only RSA certificates, you can specify multiple
default-crtdirectives to set ECDSA and RSA files. Encryption with an ECC certificate uses about 1/8 of the CPU of an RSA certificate of an equivalent cryptographic strength. For an example, see default-crt in the configuration manual.
Use crt-store with crt Jump to heading
This section applies to:
- HAProxy 3.0 and newer
- HAProxy Enterprise 3.0r1 and newer
- HAProxy ALOHA 16.5 and newer
A newer method
We recommend instead that you use crt-store with ssl-f-use.
Add a crt-store configuration section to define the file system locations of your TLS certificates and keys. Then, in a frontend section, use those files with the bind directive’s crt argument. You can add multiple crt arguments on a bind line to use multiple certificates from a crt-store.
To use a crt-store with the bind directive’s crt argument:
-
Define a
crt-storesection in your load balancer configuration. Acrt-storelets you specify the file system locations of X.509 public certificates and private keys. These files should be in PEM format. In this example, we define acrt-storethat loads several TLS files.haproxycrt-store my_tls_files# Set parent directoriescrt-base /etc/haproxy/ssl/certs/key-base /etc/haproxy/ssl/private/# Load a PEM-formatted file that contains the certificate and keyload crt "foo.pem"# Load separate PEM-formatted certificate and key filesload crt "bar.crt" key "bar.key"# Assign an alias to this lineload crt "baz.pem" alias "baz"haproxycrt-store my_tls_files# Set parent directoriescrt-base /etc/haproxy/ssl/certs/key-base /etc/haproxy/ssl/private/# Load a PEM-formatted file that contains the certificate and keyload crt "foo.pem"# Load separate PEM-formatted certificate and key filesload crt "bar.crt" key "bar.key"# Assign an alias to this lineload crt "baz.pem" alias "baz"- The
crt-storekeyword declares a new section with the namemy_tls_files. You’ll use that name when using these files. - The
crt-basedirective sets the directory to search for TLS certificate files. - The
key-basedirective sets the directory to search for TLS private key files. - The
loaddirectives set files to load into memory. You can load a certificate and its key as one file using thecrtargument, or separately with thecrtandkeyarguments.
- The
-
In your
frontendsection, add ansslargument to yourbinddirective to enable TLS. Also, update yourbinddirective to addcrtarguments that refer to the files loaded in thecrt-storesection.haproxyfrontend examplebind :443 ssl crt "@my_tls_files/foo.pem" crt "@my_tls_files/bar.crt" crt "@my_tls_files/baz"default_backend webservershaproxyfrontend examplebind :443 ssl crt "@my_tls_files/foo.pem" crt "@my_tls_files/bar.crt" crt "@my_tls_files/baz"default_backend webservers- The
binddirective sets thesslargument and one or morecrtarguments. - Each
crtargument refers to aloadline from thecrt-store. Theloaddirective’scrtargument acts as a reference key. You can also set an alias, as shown for the lastloaddirective, which uses the aliasbaz. - Since we’ve specified more than one
crtargument, the load balancer chooses the appropriate certificate for the current request based on Server Name Indication (SNI). This allows you to host multiple websites with different domain names at the same IP address and port. Each request will use the certificate that matches the domain name being requested.
- The
-
Optional: Add additional arguments to your
binddirective to set TLS options. The arguments affect all of the loaded certificates. Set any of the arguments explained in the bind options configuration reference.For example, here we add the TLS option for
ssl-min-veron thebinddirective.haproxyfrontend examplebind :443 ssl crt "@my_tls_files/foo.pem" ssl-min-ver TLSv1.2default_backend webservershaproxyfrontend examplebind :443 ssl crt "@my_tls_files/foo.pem" ssl-min-ver TLSv1.2default_backend webservers -
Optional: To set a default certificate when SNI doesn’t match any certificate, add the
default-crtargument to abindline in your frontend, specifying the location of one of your certificates. Declare thedefault-crtargument before anycrtarguments or else any precedingcrtarguments also become default certificates, since the legacy behavior was to treat the firstcrtas the default.haproxyfrontend examplebind :443 ssl default-crt "@my_tls_files/foo.pem" crt "@my_tls_files/foo.pem" crt "@my_tls_files/bar.crt"default_backend webservershaproxyfrontend examplebind :443 ssl default-crt "@my_tls_files/foo.pem" crt "@my_tls_files/foo.pem" crt "@my_tls_files/bar.crt"default_backend webserversIf you need to support clients that can accept only RSA certificates, you can specify multiple
default-crtdirectives to set ECDSA and RSA files. Encryption with an ECC certificate uses about 1/8 of the CPU of an RSA certificate of an equivalent cryptographic strength. For an example, see default-crt in the configuration manual.
Use crt-list Jump to heading
This section applies to:
- HAProxy - all versions
- HAProxy Enterprise - all versions
- HAProxy ALOHA - all versions
A newer method
We recommend instead that you use crt-store with ssl-f-use.
The modern way to define TLS options per certificate is with the ssl-f-use directive. Before that existed, the way to load multiple certificates and set different TLS options for them was to create a separate text file named a crt-list. A crt-list has a line for each certificate. Each line begins with the path to the PEM-formatted file that contains the certificate and its key. The end of a line can set additional TLS options.
To use a crt-list file:
-
Create a text file. In this example, our file sets the locations for
foo.pemandbar.pem. These files contain certificates and their private keys. They are followed by their individual TLS options. You can also refer to certificates defined in acrt-store.crt-list.txtnix/etc/haproxy/ssl/certs/foo.pem [alpn h2 ssl-min-ver TLSv1.2]/etc/haproxy/ssl/certs/bar.pem [ssl-min-ver TLSv1.3]@my_tls_files/foo.pem [ciphers ECDHE-RSA-AES128-GCM-SHA256]crt-list.txtnix/etc/haproxy/ssl/certs/foo.pem [alpn h2 ssl-min-ver TLSv1.2]/etc/haproxy/ssl/certs/bar.pem [ssl-min-ver TLSv1.3]@my_tls_files/foo.pem [ciphers ECDHE-RSA-AES128-GCM-SHA256] -
In your
frontendsection, add ansslargument to yourbinddirective to enable TLS. Also, update yourbinddirective to use acrt-listargument to refer to the path to the text file. The load balancer will load the certificates according to the options specified in that file.haproxyfrontend examplebind :443 ssl crt-list /etc/haproxy/ssl/certs/crt-list.txtdefault_backend webservershaproxyfrontend examplebind :443 ssl crt-list /etc/haproxy/ssl/certs/crt-list.txtdefault_backend webservers -
Optional: Add additional arguments to your
binddirective to set TLS options. The arguments affect all of the loaded certificates. Set any of the arguments explained in the bind options configuration reference. Arguments that you set in the crt-list file will override those set on thebinddirective for the given certificate. Set any of the arguments explained in the crt-list configuration reference. -
Optional: To set a default certificate when SNI doesn’t match any certificate, mark your certificate with an asterisk to indicate that the load balancer should consider it to be the default. For example:
crt-list.txtnix/etc/haproxy/ssl/certs/foo.pem [alpn h2 ssl-min-ver TLSv1.2] */etc/haproxy/ssl/certs/bar.pem [ssl-min-ver TLSv1.3]crt-list.txtnix/etc/haproxy/ssl/certs/foo.pem [alpn h2 ssl-min-ver TLSv1.2] */etc/haproxy/ssl/certs/bar.pem [ssl-min-ver TLSv1.3]
Use crt alone Jump to heading
This section applies to:
- HAProxy - all versions
- HAProxy Enterprise - all versions
- HAProxy ALOHA - all versions
A newer method
We recommend instead that you use crt-store with ssl-f-use.
You can load TLS files without defining a crt-store section. Set one or more crt arguments on a bind directive in a frontend section to load certificate files into memory. These files should be in PEM format. A crt can be the path to a file that contains a certificate and its key or it can be the path to a directory of files.
To use the bind directive’s crt argument:
-
In your
frontendsection, add ansslargument to yourbinddirective to enable TLS. Also, update yourbinddirective to add one or morecrtarguments to set files to load into memory.haproxyfrontend examplebind :443 ssl crt /etc/haproxy/ssl/certs/foo.pemdefault_backend webservershaproxyfrontend examplebind :443 ssl crt /etc/haproxy/ssl/certs/foo.pemdefault_backend webservers- The
sslargument enables TLS encryption. - The
crtargument indicates the file path to a.pemfile that contains both your server’s PEM-formatted TLS certificate and its private key. You will typically need to concatenate these two things manually into a single file. Simply copy and paste them into the file.
You can also set the
crtargument to a directory of TLS files. The load balancer will use Server Name Indication (SNI) to search the directory for a certificate that has a Common Name (CN) or Subject Alternative Name (SAN) field that matches the requested domain, which the client sends during the TLS handshake. This allows you to host multiple websites with different domain names at the same IP address and port. Each request will use the certificate that matches the domain name being requested. In the example below, we setcrtto a directory that contains TLS certificates:haproxyfrontend examplebind :443 ssl crt /etc/haproxy/ssl/certsdefault_backend webservershaproxyfrontend examplebind :443 ssl crt /etc/haproxy/ssl/certsdefault_backend webserversIf SNI doesn’t match any certificate, the load balancer will use the first certificate in the directory. If you intend to load default certificates in this way, ensure that this first file is a multi-cert bundle (contains a certificate and key).
- The
-
Optional: Add additional arguments to your
binddirective to set TLS options. The arguments affect all of the loaded certificates. Set any of the arguments explained in the bind options configuration reference.For example, here we add the argument
ssl-min-veron thebinddirective.haproxyfrontend examplebind :443 ssl crt /etc/haproxy/ssl/certs/foo.pem ssl-min-ver TLSv1.2default_backend webservershaproxyfrontend examplebind :443 ssl crt /etc/haproxy/ssl/certs/foo.pem ssl-min-ver TLSv1.2default_backend webservers
Redirect HTTP to HTTPS Jump to heading
To enable an HTTP to HTTPS redirect, use the http-request redirect scheme directive:
haproxyfrontend examplemode httpbind :80bind :443 sslssl-f-use crt "@my_tls_files/foo.pem"http-request redirect scheme https unless { ssl_fc }default_backend webservers
haproxyfrontend examplemode httpbind :80bind :443 sslssl-f-use crt "@my_tls_files/foo.pem"http-request redirect scheme https unless { ssl_fc }default_backend webservers
In this example:
- We set
modetohttp. - We enable TLS with the
sslargument on abindline. Notice that this frontend listens on both ports 80 for HTTP and 443 for HTTPS. Traffic received at HTTP port 80 will be redirected to HTTPS port 443. - The
http-request redirect schemedirective redirects HTTP traffic to the HTTPS scheme, unless it’s already HTTPS as indicated by the ssl_fc condition.
Security best practice
Even with the redirect, there’s still a chance that a man-in-the-middle attack can occur. To prevent this attack, consider using the http-response set-header Strict-Transport-Security directive. For details, see HTTP Strict Transport Security.
HTTP Strict Transport Security Jump to heading
Use HTTP Strict Transport Security (HSTS) to prevent a man-in-the-middle attack, which can happen if a client’s initial request is sent over cleartext HTTP, even if they are then redirected to HTTPS. An attacker could intercept their initial request and from then on eavesdrop on the session. The HSTS policy caches your website’s domain in the browser’s list of sites that should initiate communication over HTTPS from the start. Then, no redirect from HTTP to HTTPS is required. This policy can prevent man-in-the-middle attacks, where redirected traffic is intercepted by a malicious party.
HSTS works by sending the response header Strict-Transport-Security to clients. This header instructs the client’s browser to use HTTPS instead of HTTP for this domain and, optionally, its subdomains.
The Strict-Transport-Security header fields are:
| Field | Description |
|---|---|
max-age |
Required. Sets how long the browser should remember the rule, in seconds, after the client has visited the website at least once. The next time the client accesses your domain, the HSTS policy will be cached again. |
includeSubDomains |
Tells the browser that it should include all of your subdomains in the rule. |
preload |
Submit your site to the HSTS preload service, which is a registry of websites that browsers will connect to using HTTPS automatically. The preload option requires includeSubDomains. |
To enable HSTS:
-
Configure the redirect to HTTPS action in your frontend section.
-
Insert the
Strict-Transport-Securityheader into every response using thehttp-response set-headerdirective.With this configuration, HAProxy returns the
Strict-Transport-Securityheader, which instructs the browser to route messages to this website using HTTPS from the start. This rule lasts for 16,000,000 seconds (approximately six months) after the client has visited your website at least once. From then on, attackers will no longer get a chance to intercept a client’s messages. As a side effect, by not needing a redirect to HTTPS, it also avoids one round trip between the client and server, improving response times.Testing with max-age
During testing, use a low
max-agevalue, such as 600 seconds. If you’ve setincludeSubDomains, you may find during testing that some subdomains aren’t configured to accept traffic over HTTPS. Give yourself time to find those issues without a longmax-agevalue. You can also setmax-age=0to disable HSTS.haproxyfrontend examplebind :80bind :443 sslssl-f-use crt "@my_tls_files/foo.pem"http-request redirect scheme https code 301 unless { ssl_fc }# max-age is mandatory. 16000000 seconds is approximately 6 months. Use a low value during testing.http-response set-header Strict-Transport-Security "max-age=16000000; includeSubDomains; preload;"default_backend webservershaproxyfrontend examplebind :80bind :443 sslssl-f-use crt "@my_tls_files/foo.pem"http-request redirect scheme https code 301 unless { ssl_fc }# max-age is mandatory. 16000000 seconds is approximately 6 months. Use a low value during testing.http-response set-header Strict-Transport-Security "max-age=16000000; includeSubDomains; preload;"default_backend webservers
Generate dummy certificates Jump to heading
Available since:
- HAProxy 3.4
If you don’t have a TLS certificate that you can use for testing, you can have HAProxy generate a self-signed certificate for you. The certificate is a 24-hour expired certificate. The dummy certificate exists only in process memory and doesn’t persist if the process restarts.
To create a dummy TLS certificate, use the following arguments on a load directive in a crt-store section:
generate-dummy: Generate a self-signed certificate and private key. One ofonoroff. Default:off.keytype: Set the type of key, eitherRSAorECDSA. Default:RSA.bits: Set the number of bits for generating an RSA certificate. Default:2048.curves: Set the elliptic curve for generating an ECDSA certificate. Default:P-384.
In this example, we generate a self-signed 2048-bit RSA certificate named dummycert.pem.rsa and use it in a frontend bind directive:
haproxycrt-store mycertificatesload generate-dummy on keytype RSA bits 2048 crt "dummycert.pem.rsa"frontend myfrontend1 from unnamed_defaults_1...bind *:443 name *:443 ssl crt "@mycertificates/dummycert.pem.rsa"
haproxycrt-store mycertificatesload generate-dummy on keytype RSA bits 2048 crt "dummycert.pem.rsa"frontend myfrontend1 from unnamed_defaults_1...bind *:443 name *:443 ssl crt "@mycertificates/dummycert.pem.rsa"
Use the HAProxy Runtime API show ssl cert command to list details about the dummy certificate:
nixecho "show ssl cert @mycertificates/dummycert.pem.rsa" | socat stdio tcp4-connect:127.0.0.1:9999
nixecho "show ssl cert @mycertificates/dummycert.pem.rsa" | socat stdio tcp4-connect:127.0.0.1:9999
outputtextFilename: @mycertificates/dummycert.pem.rsaCrt filename: dummycert.pem.rsaOption: ocsp-update offOption: jwt offStatus: UsedSerial:notBefore: Jun 14 19:04:16 2026 GMTnotAfter: Jun 15 19:04:16 2026 GMTSubject Alternative Name:Algorithm: RSA2048SHA1 FingerPrint: C114A461E74FB78CF8036258A4A4387AD95B1856Subject: /CN=expiredIssuer: /CN=expiredOCSP Response Key:
outputtextFilename: @mycertificates/dummycert.pem.rsaCrt filename: dummycert.pem.rsaOption: ocsp-update offOption: jwt offStatus: UsedSerial:notBefore: Jun 14 19:04:16 2026 GMTnotAfter: Jun 15 19:04:16 2026 GMTSubject Alternative Name:Algorithm: RSA2048SHA1 FingerPrint: C114A461E74FB78CF8036258A4A4387AD95B1856Subject: /CN=expiredIssuer: /CN=expiredOCSP Response Key:
Server-side TLS Jump to heading
You can encrypt traffic between the load balancer and backend servers. TLS is the successor to the deprecated Secure Sockets Layer (SSL).
To configure TLS between the load balancer and your backend servers, add the ssl and verify arguments to your server lines in a backend:
haproxybackend webserversmode httpbalance roundrobinserver web1 10.0.0.5:443 ssl verify required ca-file /myca.pemserver web2 10.0.0.6:443 ssl verify required ca-file /myca.pem
haproxybackend webserversmode httpbalance roundrobinserver web1 10.0.0.5:443 ssl verify required ca-file /myca.pemserver web2 10.0.0.6:443 ssl verify required ca-file /myca.pem
In this example:
- The
sslargument enables TLS to the server. - The
verifyargument indicates whether to verify that the server’s TLS certificate was signed by a trusted Certificate Authority (CA). - The
ca-fileargument sets the CA for validating the server’s certificate.
Typically, you will use port 443, which signifies the HTTPS protocol, when connecting to servers over TLS.
About the verify argument
Setting verify to required configures the load balancer to check the server’s certificate against a Certificate Authority (CA) certificate, which you specify with the ca-file argument. You can also set ca-file to @system-ca, in which case it will refer to the trusted CAs from your operating system.
You can also set verify to none, which means don’t check that the server’s certificate is trusted. This is helpful when the server uses a self-signed certificate.
You can also include a crl-file parameter to indicate a certificate revocation list.
When mode is set to http, you can send an SNI value to your backend servers. Add the sni argument followed by a fetch method that returns the name you wish to use. Often, you will use the req.hdr fetch to get the Host header value, as shown below:
haproxybackend webserversserver web1 10.0.0.5:443 ssl verify required ca-file /myca.pem sni req.hdr(Host)server web2 10.0.0.6:443 ssl verify required ca-file /myca.pem sni req.hdr(Host)
haproxybackend webserversserver web1 10.0.0.5:443 ssl verify required ca-file /myca.pem sni req.hdr(Host)server web2 10.0.0.6:443 ssl verify required ca-file /myca.pem sni req.hdr(Host)
HAProxy 3.3 sets the SNI
With HAProxy 3.3 / HAProxy Enterprise 3.3r1 / HAProxy ALOHA 18.0 and newer, the SNI value is set automatically to the Host request header, so you don’t need to set the sni argument. To disable this behavior, add no-sni-auto to the server line. The SNI is also set automatically for HTTP health checks, but you can disable that with the no-check-sni-auto argument.
See also Jump to heading
- To enable SSL deciphering, see ssl.
- To specify a PEM file for a bind, or the directory containing the certificate and associated private keys, see crt.
- To specify a file containing a list of certificates and their TLS options, see crt-list.
- For enhanced flexibility in managing certificates, see crt-store.
- To perform redirects such as redirecting HTTP requests to HTTPS, see http-request redirect.
- To set the default behavior for SSL verification on the server side, see ssl-server-verify.
- When you have enabled TLS between the load balancer and backend servers, you can specify a PEM file containing a CA certificate for validating the server certificate, see ca-file reference.
- To specify whether the server certificate should be verified, see verify reference.
- To list details about a TLS certificate, see show ssl cert.
- See the load reference for options available for the
loaddirective.