tlshd.conf(5)
π NAME π
tlshd.conf β the configuration file for tlshd, bestie. She's a File Formats Manual girlie, so yes, she lives in section 5. π
πΈ SYNOPSIS πΈ
/etc/tlshd/config
/etc/tlshd.conf (deprecated)
Heads up queen:/etc/tlshd.confis deprecated. It's giving "still works but we're side-eyeing it." The main-character path is/etc/tlshd/config.
β¨ DESCRIPTION β¨
Okay so real talk. The tlshd program is a user agent that services TLS handshake requests on behalf of kernel TLS consumers. Basically it's the friend who goes and handles the awkward handshake stuff for the kernel so the kernel doesn't have to. π«Ά
Its configuration file holds the info the program reads when it starts up. The file is designed to be human readable, and it's just a list of keywords with values that provide various types of information. Lowkey important: the configuration file is considered a trusted source of information. So like, protect it. π
The tlshd program reads this file once when it is launched. Read that again. Once. So any changes you make in this file take effect only when the tlshd program is restarted β no hot reloading, no little magic refresh, nothing. π
And if this file does not exist? The tlshd program exits immediately. Not a warning, not a vibe-check, an exit. π
π§ OPTIONS π§
The configuration file is split into sections. Let's go section by section, no skipping, we're thorough in this house.
π The [debug] section
This section specifies debugging settings for the tlshd program. In this section, there are three available options:
loglevelβ specifies an integer that indicates the debug message level. Zero is the default, and zero is the quietest setting. π€«tlsβ specifies an integer that indicates the debug message level for TLS library calls. Zero is the default, quietest setting again.nlβ specifies an integer that indicates the debug message level for netlink library calls. Zero is the default, and yep, quietest.
π The [authenticate] section
This section specifies default authentication material when establishing TLS sessions. In this section, there is one available option:
keyringsβ specifies a semicolon-separated list of auxiliary keyrings that contain handshake authentication tokens.tlshdlinks these keyrings into its session keyring. The configuration file may specify either a keyring's name or serial number. And no matter what you put here,tlshdalways includes the.nvme,.nfs, and.nfsdkeyrings on its session keyring β those three are non-negotiable, they're permanent residents. π
π― [client] and [server] β the two subsections
And in this section, there are two subsections: [client] and [server]. The tlshd program consults the settings in the [client] subsection when handling the client end of a handshake, and it consults the settings in the [server] subsection when handling the server end of a handshake. Know which side you're on, diva. β¨
In each of these two subsections, the manpage says there are four available options β and then it lists six, because we contain multitudes and deadlines are real. π Anyway, here are all of them, and yes, they apply to both subsections:
x509.truststoreβ specifies the pathname of a file containing a PEM-encoded trust store that is used to verify a certificate during a handshake. If this option is not specified,tlshduses the system's trust store. Default behavior, she's generous. πx509.crlβ specifies the pathname of a file containing PEM-encoded certificate revocation lists (CRL) that are used to verify the revocation status of certificates during each handshake. If this option is not specified, CRL checking is skipped. π¨x509.certificateβ specifies the pathname of a file containing a PEM-encoded x.509 certificate that is presented during a handshake request when no other certificate is available.x509.private_keyβ specifies the pathname of a file containing a PEM-encoded private key associated with the above certificate. πx509.pq.certificateβ specifies the pathname of a file containing a PEM-encoded x.509 certificate that is presented during a handshake request if the peer supports post-quantum cryptography. This certificate must be using a post-quantum public-key algorithm β<rainbow>ML-DSA-44, ML-DSA-65, or ML-DSA-87</rainbow>. If the peer does not support post-quantum cryptography, the certificate configured in thex509.certificateoption will be presented instead. Post-quantum? She's future-proofed. π¦x509.pq.private_keyβ specifies the pathname of a file containing a PEM-encoded private key associated with the above certificate. π
Reminder bestie: that PQ certificate has to use a post-quantum public-key algorithm βML-DSA-44,ML-DSA-65, orML-DSA-87. No substitutes, no vibes-based crypto. π
π SEE ALSO π
tlshd(8)β go read that one too, it's the whole point of this file fr fr
βοΈ AUTHOR βοΈ
Chuck Lever β thank you for your service, king. π
And that's the whole page, bestie! This little cutie came from the File Formats Manual and it's dated 23 Sep 2025 β so tlshd.conf(5), version-of-record and all, is officially signed, sealed and slayed. Take care of your trust stores and restart your daemon. Periodt. π
β¨π
π¦ where this page comes from
- fedora 44: ktls-utils 1.3.0-2.fc44 Β· GPL-2.0-only AND (GPL-2.0-only OR BSD-3-Clause)
- nixpkgs unstable: ktls-utils 1.3.0
- ubuntu resolute: ktls-utils 1.3.0-2 Β· GPL-2.0-only
- ubuntu stonking: ktls-utils 1.4.0-1 Β· GPL-2.0-only
- Copyright (c) 2022 Oracle and/or its affiliates
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms