ALPN is a TLS extension that negotiates the application protocol (HTTP/1.1, h2, h3) during the TLS handshake, eliminating an extra round trip. The client lists supported protocols in ClientHello; the server selects one in ServerHello. HTTP/2 requires ALPN – browsers will not use h2 without it. Also used for ACME tls-alpn-01 validation.
Application-Layer Protocol Negotiation allows client and server to agree on the application protocol within the TLS handshake itself. The client sends a list of supported protocols (e.g., h2, http/1.1) in the ClientHello ALPN extension. The server selects the highest-priority mutual match and confirms in ServerHello. This avoids the extra round trip that NPN (Next Protocol Negotiation, deprecated predecessor) required. ALPN is mandatory for HTTP/2 over TLS – browsers refuse to use h2 without ALPN negotiation. ALPN values are IANA-registered: 'h2' for HTTP/2, 'http/1.1' for HTTP/1.1, 'h3' for HTTP/3 (over QUIC). The ACME protocol uses ALPN for domain validation: the tls-alpn-01 challenge requires responding with a specific self-signed certificate when the CA connects with ALPN protocol 'acme-tls/1'.
Cipher Suite
A cipher suite is the combination of algorithms negotiated during a TLS handshake: key exchange (ECDHE), authentication (RSA/ECDSA), bulk encryption (AES-256-GCM), and integrity (SHA-384). TLS 1.3 simplified suites to just AEAD cipher + hash, removing key exchange from the suite name since ECDHE is mandatory.
SNI (Server Name Indication)
SNI is a TLS extension that sends the requested hostname in the ClientHello message, allowing one IP address to serve multiple TLS certificates. Without SNI, each HTTPS site needs its own IP. SNI is sent in cleartext – Encrypted Client Hello (ECH) encrypts it to prevent network observers from seeing which site is being accessed.