Native TLS data listener

Build with OPENADS_WITH_TLS=ON. Run openads_serverd with --tls_cert server-chain.pem --tls_key server-key.pem. Both files are required; the unencrypted PEM private key must be readable only by the service account. Startup rejects unreadable files, invalid PEM and a certificate/key mismatch. All primary and extra TCP data listeners then require TLS. There is no plain fallback. Clients use tls:// and a trusted CA bundle with hostname verification. Use a certificate whose SAN matches the client hostname.

The accepted socket uses mbedTLS BIO callbacks. Handshake and reads are non-blocking in both the reactor and legacy session loops. A handshake/Connect must finish within 30 seconds. Replies use bounded one-frame backpressure and a 30-second write deadline. Stalled clients do not busy-wait inside a worker.

This does not add HTTPS to Studio. Keep Studio behind a TLS proxy and firewall. Without the TLS flags, legacy plain TCP still works and serverd warns on a non-loopback bind. TLS server mode authenticates users through Connect, not client certificates. Private keys are not logged. Certificate renewal is the operator’s responsibility and requires a restart.


This site uses Just the Docs, a documentation theme for Jekyll.