SSL routines: wrong version number SSL / TLS Origin: Network Last updated 4 Nov 2026

OpenSSL: error:1408F10B:SSL routines:ssl3_get_record:wrong version number

The peer did not answer with a TLS record — you spoke TLS to a plain HTTP/SMTP port (or the reverse), or a proxy intervened.

Exact message you may see error:1408F10B:SSL routines:ssl3_get_record:wrong version numberSSL routines wrong version numberSSL: WRONG_VERSION_NUMBERssl3_get_record:wrong version numbererror:0A00010B:SSL routines::wrong version number
Seen on: SSL Linux

Meaning

The first bytes received did not look like TLS. Check the port and protocol: HTTPS on 443, but not on 80 or app ports; an HTTP-only service behind an https:// URL; or an HTTP proxy that must be set up as http://proxy:port, not https://.

Common causes

  • https:// used against a plain HTTP port
  • Proxy configured with https scheme
  • Server without TLS on that port
  • STARTTLS port used with SSL-on-connect
  • Firewall/captive portal returning HTML

⚡ Quick fix

  1. Use http:// for plain ports or enable TLS on the server
  2. Set proxy URL scheme to http://
  3. Match SMTP/IMAP modes with ports (465 SSL, 587 STARTTLS)

Detailed fix by platform

Linux

  1. printf 'HEAD / HTTP/1.0\r \r ' | nc host 8080 shows whether the port speaks plain HTTP

How to diagnose

  1. Port — TLS enabled?
  2. Scheme — http vs https?
  3. Proxy — Scheme correct?

🔧 Still not fixed?

Many errors look alike. If the steps above didn’t solve it, one of these is probably what you’re facing:

Where this error sits

Origin: Network. Errors that are often confused with or caused by this one (click to open):

ca md too weak / ee key too small — OpenSSL: error:0A00018E:SSL routines::ca md too weak / error:140AB18F:SSL routines:SSL_CTX_use_certificate:ee key too small (SSL / TLS)ca md too weak / ee k…cURL error 35 — cURL error 35: OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to host:443 (PHP)cURL error 35ERR_SSL_PROTOCOL_ERROR — ERR_SSL_PROTOCOL_ERROR (This site can't provide a secure connection) (JavaScript)ERR_SSL_PROTOCOL_ERRORgRPC: Ssl handshake failed / authentication handshake failed — gRPC: rpc error: code = Unavailable desc = connection error: desc = "transport: authentication handshake failed: x509: certificate signed by unknown authority" (SSL / TLS)gRPC: Ssl handshake f…HTTPSConnectionPool: Max retries exceeded (SSLError) — Python requests: HTTPSConnectionPool(host='api.example.com', port=443): Max retries exceeded with url: /v1 (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] ...'))) (SSL / TLS)HTTPSConnectionPool: …MySQL: SSL connection error: SSL is required but the server doesn't support it — MySQL: ERROR 2026 (HY000): SSL connection error: SSL is required but the server doesn't support it (SSL / TLS)MySQL: SSL connection…PKCS12: Mac verify error: invalid password? — OpenSSL: Error outputting keys and certificates — Mac verify error: invalid password? (SSL / TLS)PKCS12: Mac verify er…SSL_ERROR_RX_RECORD_TOO_LONG — Firefox: Secure Connection Failed — SSL received a record that exceeded the maximum permissible length. Error code: SSL_ERROR_RX_RECORD_TOO_LONG (SSL / TLS)SSL_ERROR_RX_RECORD_T…SSL routi…

Explore the map of this error Full error map →

🧠 Still stuck? Analyze your error

Paste the full message, response headers or stack trace — we'll detect the platform and point to the most likely cause.

💬 What worked for others

No tips yet — did something else fix this for you?

Share what worked for you

Tips are checked by an editor before they appear. Links are removed.