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.
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 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
- Use
http://for plain ports or enable TLS on the server - Set proxy URL scheme to
http:// - Match SMTP/IMAP modes with ports (465 SSL, 587 STARTTLS)
Detailed fix by platform
Linux
printf 'HEAD / HTTP/1.0\r \r ' | nc host 8080shows whether the port speaks plain HTTP
How to diagnose
- Port — TLS enabled?
- Scheme — http vs https?
- 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:
Similar errors
- 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
- cURL error 35 cURL error 35: OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to host:443
- ERR_SSL_PROTOCOL_ERROR ERR_SSL_PROTOCOL_ERROR (This site can't provide a secure connection)
Most viewed in SSL / TLS
- NET::ERR_CERT_COMMON_NAME_INVALID NET::ERR_CERT_COMMON_NAME_INVALID: Your connection is not private (certificate is for a different domain)
- Challenge failed for domain Let’s Encrypt / Certbot: Challenge failed for domain example.com — Invalid response from http://example.com/.well-known/acme-challenge/x: 404
- no start line OpenSSL: unable to load certificate / PEM routines:get_name:no start line (key values mismatch)
Other ways to find it
Where this error sits
Origin: Network. Errors that are often confused with or caused by this one (click to open):
🧠 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.
Report a correction or suggest an improvement
Last updated 4 Nov 2026