Skip to content
Smarter by Design.Simpler for Business

lb ssl-security ​

The lb ssl-security command creates the SSL security profiles that determine which versions, cipher algorithms and verification rules will be valid in the TLS connections of a vService. Its panel equivalent is the TLS Security Profiles screen.

Command Summary ​

TR7 WEB-CLI · lb ssl-security
# Tab after the command
admin@TR7LBWAF01> lb ssl-security
add delete list show update
 
admin@TR7LBWAF01> lb ssl-security list # list all of them
admin@TR7LBWAF01> lb ssl-security show <id> # show one
admin@TR7LBWAF01> lb ssl-security add name <name> … # new profile
admin@TR7LBWAF01> lb ssl-security update id <id> … # change
admin@TR7LBWAF01> lb ssl-security delete <id> # delete
admin@TR7LBWAF01>  

Required Fields ​

OrderFieldStatusValue
1nameRequiredThe name of the profile; it must be unique in the collection

All the remaining fields are optional; the ones that are not given are applied with their default values.

The Version and Cipher Fields ​

FieldWhat it doesWhat is written after it
--minSslVersionDetermines the lowest TLS version that will be acceptedA version value (default TLSv1.1); Tab lists them
--maxSslVersionDetermines the highest TLS version that will be acceptedA version value (default TLSv1.3)
--cipherAlgorithmSelects the cipher algorithm sethardware (default) · onlySecure · tls13 · old · general · strictSecure · strictOld · manual
--manualCipherAlgorithmList.NSelects the algorithms one by oneAn algorithm name; each with its own index. It opens only when --cipherAlgorithm manual is selected
--curves.NSelects the curves to be used in the key exchangeX25519 · X448 (both are valid only in TLS 1.3)
--pqcTurns on the post-quantum key exchangetrue · false (default false)

The Connection Behavior ​

FieldWhat it doesWhat is written after it
--noTlsTicketsMakes the undefined TLS requests be restarted; the session tickets are not usedtrue · false (default false)
--useQatTurns on the SSL operations being done with the hardware acceleratortrue · false (default false)
--sniHostValidationMakes the SNI sent by the client and the Host header match compulsorytrue · false (default false)
--ocspStaplingTurns on the revocation status of the certificate being attached by the servertrue · false (default false)

The Client Certificate Verification ​

This group manages the verification of the certificate of the visitor on the listening side. All the fields open when --clientCertAuth true is written.

FieldStatusWhat it doesWhat is written after it
--clientCertAuthOptionalTurns on the client certificate verificationtrue · false (default false)
--clientCertVerifyTypeConditionalDetermines whether the certificate is required or optionalrequired the connection is not accepted without a certificate (default) · optional if there is a certificate, it is verified
--caFiles.NConditionalSelects the CAs that will be trusted in the verificationThe lb ca records; each with its own index
--caErrorStrategyConditionalSelects what will be done on the verification errorsdenyAll rejects on every error (default) · ignoreAll ignores the errors · manualIgnoreList ignores only the selected errors
--caErrorsToIgnore.NConditionalSelects the verification errors that will be ignoredAn error code; it opens only when --caErrorStrategy manualIgnoreList is selected

Some of the error codes that can be ignored: 2 the parent certificate could not be fetched · 3 the certificate revocation list could not be fetched · 7 the certificate signature is wrong · 19 a self-signed certificate in the chain · 24 an invalid CA certificate · 31 the authority and issuer serial numbers do not match. The whole list is seen with Tab.

Ignoring the errors weakens the verification

When --caErrorStrategy ignoreAll is selected, the connection is accepted even if the certificate chain is wrong. It is used only if it is known which error is ignored for which reason; for a specific error manualIgnoreList is safer.

The HSTS Fields ​

FieldStatusWhat it doesWhat is written after it
--hstsOptionalTurns on the sending of the header that tells the browser to connect to the site only with HTTPStrue · false (default false)
--hstsMaxAge.val · --hstsMaxAge.unitOptionalDetermines how long this rule will stay valid in the browserA number and a unit (default 180 days)
--hstsIncludeSubdomainsConditionalMakes the rule cover the subdomains as welltrue · false (default false); it opens only while --hsts true
--hstsPreloadConditionalAdds the browser preload list mark to the headertrue · false (default false); it opens only while --hsts true

Examples ​

TR7 WEB-CLI · A) A strict version range and HSTS
admin@TR7LBWAF01> lb ssl-security add name strict-profile \
--minSslVersion TLSv1.2 --maxSslVersion TLSv1.3 --cipherAlgorithm onlySecure \
--hsts true --hstsMaxAge.val 365 --hstsMaxAge.unit d --hstsIncludeSubdomains true
admin@TR7LBWAF01>  
TR7 WEB-CLI · B) Client certificate verification (mTLS)
admin@TR7LBWAF01> lb ssl-security add name mtls-profile \
--clientCertAuth true --clientCertVerifyType required \
--caFiles.0 <ca> --caErrorStrategy manualIgnoreList --caErrorsToIgnore.0 19
admin@TR7LBWAF01>  
TR7 WEB-CLI · C) A manual algorithm list and binding to a vService
admin@TR7LBWAF01> lb ssl-security add name manual-cipher --cipherAlgorithm manual \
--manualCipherAlgorithmList.0 <algorithm> --manualCipherAlgorithmList.1 <algorithm> \
--curves.0 X25519 --pqc true
 
admin@TR7LBWAF01> lb service update id <vService> --sslSecurity <profile>
admin@TR7LBWAF01>  

Updating and Deleting ​

TR7 WEB-CLI · update and delete
admin@TR7LBWAF01> lb ssl-security update id <id> --minSslVersion TLSv1.3
 
# removing a single CA · emptying the list fields
admin@TR7LBWAF01> lb ssl-security update id <id> --caFiles.0.delete
admin@TR7LBWAF01> lb ssl-security update id <id> --curves.delete
 
admin@TR7LBWAF01> lb ssl-security delete <id>
admin@TR7LBWAF01>  

Things to Know ​

  • A profile does not work on its own. The settings are applied when the profile is bound to a vService with the --sslSecurity field.
  • In the backend connection a part of the profile is valid. The same profile can also be selected in the lb backend record with --sslSecurityProfile; in that connection only the minimum and the maximum SSL version, the cipher list and the curve settings are applied.
  • The client certificate verification is on the listening side. This group verifies the certificate of the visitor; TR7 identifying itself to the backend is the --sslClientCert field in the backend record.
  • The curves are valid only in TLS 1.3. The X25519 and X448 selections are not effective in the older versions.
  • HSTS is hard to undo. The browser carries on connecting to the site only with HTTPS until the time expires; before extending the time, it should be made sure that the certificate is renewed without interruption.