An operator-friendly web server that wires ACME into a plain config file.

Caddy automates HTTPS issuance and renewal

The automation wraps the ACME protocol yet still obeys the same public rules: challenges are validated over the network, and when the origin is hidden behind a load balancer you may need the DNS challenge instead of the HTTP one. One directive is enough A bare caddy file-server (or a tls directive) turns automatic HTTPS on by default: Caddy generates a key pair and drives the ACME flow against a certificate authority to obtain a certificate, then reloads it into the running server. It stores the issued key and certificate in its own data store under an ID derived from the domain, so the next start reuses them instead of re-issuing on every boot. You never author the protocol steps, but you still own the boundaries: a domain must be publicly reachable, or you switch to a DNS challenge with a provider plugin so the validation runs where it can actually answer. ...

January 21, 2027 · 5 min · XB Field Notes
Observe-decide-act boxes beside the message: Verify TLS, then check the reply.

Checking HTTPS beyond the lock icon

HTTPS protects a connection and authenticates its peer according to the client’s trust policy. It does not certify the site’s intentions, correctness, or availability. A security indicator is therefore neither just an encryption label nor a complete health report. A useful check separately evaluates the TLS connection, the HTTP response, and the service’s expected behavior. ...

November 9, 2026 · 6 min · XB Field Notes
Observe-decide-act boxes beside the message: SNI selects a cert, clients verify names.

SNI picks the certificate before the first byte

Server Name Indication gives a TLS server a hostname while it is choosing handshake parameters and a certificate. In the certificate-based, no-early-data path discussed here, this happens before ordinary HTTP bytes, not before any bytes cross the network. SNI is a selection hint; the client must still verify the selected identity. ...

November 8, 2026 · 6 min · XB Field Notes
Observe-decide-act boxes beside the message: Remember HTTPS, scope the policy.

HSTS makes the browser remember HTTPS

HTTP Strict Transport Security tells a supporting client to use HTTPS for a remembered hostname. It can eliminate the insecure HTTP request before a redirect, but only when the client already knows the policy, through an earlier authenticated response or a supported preload mechanism. Merely adding a header cannot retroactively protect an unknown client’s first HTTP visit. ...

October 8, 2026 · 7 min · XB Field Notes
Observe-decide-act boxes beside the message: Set the TLS floor, test both sides.

TLS version is a feature you pin

A TLS version policy defines which handshakes an endpoint accepts. Prefer an explicit minimum over assuming that a library’s changing defaults match your requirements. A maximum is a separate constraint: freezing it unnecessarily can prevent adoption of a newer supported protocol. Neither setting replaces certificate verification, suitable algorithms, or timely security updates. ...

September 23, 2026 · 5 min · XB Field Notes
A trust inventory of a public edge, from headers and TLS identity to certificate chain and CAA.

Audit the trust of a public edge

Read every trust signal at the edge, from the CSP header to the certificate chain and the authorized issuer.

August 6, 2026 · 6 min · XB Field Notes
Observe-decide-act boxes beside the message: TLS 1.3 handshake, verify the identity.

TLS 1.3 handshake basics

TLS 1.3 establishes traffic keys and authenticates the peer under the application’s trust policy. Ordinary HTTPS authenticates the server; client certificates are optional, not an automatic consequence of encryption. A successful TCP connection alone establishes neither identity nor a working HTTP service. ...

August 6, 2026 · 5 min · XB Field Notes
An HSTS policy increasing through staged max-age steps before covering subdomains.

HSTS should be rolled out with a recovery plan

HSTS is cached browser policy, so a configuration mistake can outlive the server change that created it.

June 23, 2026 · 2 min · XB Field Notes