Back to Port Numbers

443 HTTPS TCP Flagship

Reference for TCP port 443, commonly associated with HTTPS.

What it's for

Port 443 is the default port for HTTPS — HTTP wrapped in TLS encryption. It's the port your browser connects to for the overwhelming majority of the modern web, and it's what makes the padlock icon in your address bar possible. When you visit https://example.com with no port specified, your browser connects to port 443 automatically, exactly the way port 80 is the implicit default for plain http://.

Everything sent over port 443 — request headers, form data, cookies, the actual page content — is encrypted end-to-end between client and server, protecting it from anyone observing the network in between.

Protocol basics

  • Protocol: TCP (with HTTP/3 as a growing exception, which layers TLS over QUIC/UDP instead — still commonly negotiated to fall back to 443 for compatibility).
  • TLS handshake first. Before any HTTP request is sent, the client and server perform a TLS handshake: agreeing on a TLS version and cipher suite, verifying the server's certificate against a trusted certificate authority, and establishing a shared encryption key.
  • SNI (Server Name Indication). Since many sites share a single IP address, the client sends the requested hostname in plaintext during the handshake so the server knows which certificate to present — this is why one IP can serve HTTPS for many different domains.
  • Certificate-based trust. The server presents an X.509 certificate proving its identity; browsers reject connections where the certificate is expired, self-signed (without explicit trust), or doesn't match the requested domain.

Security considerations

  • Certificate expiry is the most common outage cause. An expired TLS certificate breaks HTTPS entirely for all visitors, with no graceful degradation — automate renewal (Let's Encrypt + certbot, or your CDN's managed certs) rather than tracking expiry dates manually.
  • Weak cipher suites and old TLS versions (TLS 1.0/1.1) should be disabled on the server — modern servers should support TLS 1.2 and 1.3 only.
  • Mixed content warnings happen when an HTTPS page loads a resource (script, image, stylesheet) over plain HTTP — browsers block or warn on this since it reintroduces a plaintext attack surface on an otherwise secure page.
  • HSTS preloading goes a step further than a basic redirect, telling browsers to never even attempt a plaintext connection to your domain, closing the small window of vulnerability on a user's very first visit.
  • Certificate pinning (less common now) can add another layer of trust verification for high-security applications, at the cost of operational complexity during cert rotation.

Troubleshooting

"Your connection is not private" / certificate errors:

  • Certificate has expired — check with openssl s_client -connect example.com:443 or your CA's dashboard
  • Certificate doesn't match the domain being requested (common with wildcard cert misconfiguration or SNI issues)
  • Certificate chain is incomplete — the server needs to present intermediate certificates, not just the leaf certificate

Connection refused on port 443:

  • No process is listening on 443 (misconfigured web server or reverse proxy)
  • Firewall/security group blocking inbound 443

Works in some browsers, fails in others:

  • Usually an outdated/misconfigured cipher suite or TLS version that only some clients still support — check your config against a tool like SSL Labs' server test

Mixed content warnings in browser console:

  • Some asset (script, image, iframe) is being loaded via http:// on an HTTPS page — search your codebase for hardcoded http:// URLs and switch them to protocol-relative or explicit https://

Comparison / FAQ

Port Protocol Key difference from 443 (HTTPS)
80 (HTTP) TCP Same underlying protocol, no TLS encryption — considered insecure for anything beyond a redirect
8443 (HTTPS alt) TCP Alternate HTTPS port, commonly used when 443 is reserved or unavailable, or for admin panels kept separate from the main site
993 (IMAPS) TCP Different application protocol (email) but the same "add TLS" relationship to its plaintext counterpart

Do I need a paid certificate, or is a free one (Let's Encrypt) good enough?

For almost all use cases, free certificates from Let's Encrypt provide identical encryption strength to paid ones — the difference is mainly in extended validation branding and support, not security.

Why does my site still show "Not Secure" even though I have HTTPS set up?

Check for mixed content (HTTP resources loading on an HTTPS page) — browsers will flag the page as insecure even if the main connection itself is encrypted.

Can port 443 carry non-HTTP traffic?

Yes — some VPN and proxy tools deliberately tunnel traffic over port 443 because it's almost never blocked by firewalls (since blocking it would break HTTPS entirely). The port number doesn't enforce what protocol runs on it; that's purely convention.

What happens during the TLS handshake before my page even loads?

The client and server negotiate a TLS version and cipher suite, the server presents its certificate for verification, and both sides derive a shared session key — all before a single byte of the actual HTTP request is sent. This adds a small amount of latency, which TLS 1.3 and connection resumption techniques work to minimize.