Can certificate verification be done in an HTTPS health check?
Short answer
Yes. Verify Server Certificate is turned on in the HTTPS profile; it is off by default, and while it is off, self-signed or expired certificates are also accepted. Verification is done against TR7's trusted root certificates; for certificates signed by an internal CA, a CA record is selected in the Verification CA Profile field; if it is left empty, the CA profile of the Backend Service is used if SSL Service is on and Certificate Verification is Required on the Backend Service. The name match is checked only if Virtual Domain (Host/SNI) is filled; if the server requests a client certificate, a certificate is selected in the Client Certificate to Present (mTLS) field.
Problem: The Health Check Does Not Notice an Invalid Certificate
While verification is off, the health check does not look at the server's certificate; even if the certificate expires or a wrong certificate is installed, the server appears healthy. If the data traffic verifies the certificate (Certificate verification Required on the Backend Service), the server can stay in traffic while clients get errors.
Solution: 2 Methods
The two methods make the same setting from different interfaces.
| Your situation | Suitable method |
|---|---|
| I configure the profile from the interface | Method 1: Verification in the HTTPS profile |
| I create or update the profile from WEB-CLI | Method 2: WEB-CLI |
Method 1: Verification in the HTTPS Profile Recommended
- How it works The health check verifies the server's certificate chain against TR7's trusted root certificates and the selected CA record; if Virtual Domain (Host/SNI) is filled, it also compares the name in the certificate. If verification fails, the check fails with "Certificate error".
- Where it is opened HTTPS profile → Verify Server Certificate / Verification CA Profile / Client Certificate to Present (mTLS)
- Requirement If an internal CA is used, the CA must be registered on the Certificate Authorities (CA) screen; if mTLS is required, a client certificate on the Client Certificates screen
- vService type All
- Other TLS types The same fields are also present in the TCPS, FTPS, LDAPS, SMTPS and SMTP with Use STARTTLS on types
Step-by-Step Configuration
If the server certificate is signed by the organization's internal CA and the CA is not registered in TR7, the Configuration Menu is opened with the TR7 logo at the bottom left; the Certificates & PKI → Certificate Authorities (CA) path is followed and Add is clicked.
A unique name is written in the CA Name field; Add a trusted CA certificate (default) is left in the Operation field, and the CA certificate is pasted into the CA Certificate (PEM) field.
The Add button is clicked; the record appears in the Verification CA Profile list in the health check form.
If the server requests a client certificate and there is no suitable client certificate in TR7, the Certificates & PKI → Client Certificates path is followed and Add is clicked.
A unique name is written in the Certificate Name field. For a certificate issued by the organization, Import an existing certificate is selected in the How to Add field, and the certificate and private key are pasted as PEM; if it will be generated with TR7's internal CA, Issue from an internal CA is selected.
The Add button is clicked; the record appears in the Client Certificate to Present (mTLS) list in the health check form.
The Load Balancer → Profiles → Health Checks path is followed; for a new profile Add is clicked, and for an existing HTTPS profile the profile is selected and Edit is clicked. In a new profile, Name is entered and HTTPS is selected in the Check Type field; the TLS fields are located at the top of the form.
Verify Server Certificate is turned on; the Verification CA Profile field appears. If an internal CA is used, the CA saved in step 3 is selected; if None is left, the CA profile of the Backend Service is used and From the backend is written in the profile preview.
If the name in the certificate is also to be checked, the name for which the certificate was issued is written in the Virtual Domain (Host/SNI) field (e.g. portal.example.com); this name is also sent as the Host header in the request and as SNI in the TLS connection. If the server requests a client certificate, the certificate from step 6 is selected in the Client Certificate to Present (mTLS) field; if None is left, the certificate in the Client Certificate Presented to Backend (mTLS) field of the Backend Service is used.
The Add (Edit when editing) button is clicked. If the profile is already assigned, the change is applied to all the Backend Services that use the profile.
For a new profile, the Load Balancer → Backend Services path is followed; the Backend Service is right-clicked and Edit is selected.
The profile is selected in the Health Check field.
The Edit button at the bottom of the form is clicked. In a cluster, the change is transferred to the peer device automatically by default; if Manual Sync Mode is on, it is sent with Synchronize.
Verification
The indicator in the Health column of the Backend Services list is checked (Health status indicator).
OK (green)If the certificate cannot be verified, the error text appears in the error strip of the Health Check card in the Backend Service preview and in the Health Checks tab.
Certificate error: …Method 2: WEB-CLI
- How it works The TLS fields are written with
--verifyCertificate,--tlsVerifyCa,--virtualDomainand--tlsClientCert;--tlsVerifyCais used only while--verifyCertificate true. - Where it is opened WEB-CLI →
lb hc add/lb hc update(lb hc · The TLS Fields) - Requirement WEB-CLI access; the ID of the CA record (
lb ca list) - vService type All
Step-by-Step Configuration
checkType and name are required and are written in this order; the ID of the CA record is taken from the lb ca list output:
lb hc add checkType https name tls-denetimi --uri /health --virtualDomain portal.example.com --verifyCertificate true --tlsVerifyCa <ca-id>The profile ID is taken from the lb hc list output, and the Backend Service ID from the lb backend list output:
lb backend update id <backend-id> --hc <profile-id>Verification
The profile record is displayed.
lb hc show <profile-id>verifyCertificate true, tlsVerifyCa and virtualDomain filledCommon Mistakes
- Assuming that the verification on the Backend Service is also applied to the health check. The verification of the health check depends on Verify Server Certificate in the profile; only the CA profile, the client certificate and the lowest TLS version and the cipher list of the Backend SSL Security Profile are inherited from the Backend Service.
- Turning on verification without registering the internal CA. A certificate signed by the organization's own CA cannot be verified, and the server becomes Error.
- Expecting a name check while Virtual domain (Host/SNI) is empty. If the field is empty, only the certificate chain is checked; the name in the certificate is not compared.
- Selecting a CA while Verify server certificate is off. Verification CA Profile is applied only while verification is on.
How it is done in the documentation
