SSL alert 40

Több derék szerver is ilyen hibaüzenettel örvendeztet meg, most például:

$ sminitel -ssl -debug-ssl www.balena.io 443
20250802.191422.860 Connected to 15.161.34.42:443 from 0.0.0.0:63638 in 32 ms
20250802.191423.149 SSL_connect(socket=3) returned -1
                    SSL_error=1: SSL PROTOCOL
4007E6F7087F0000:error:0A000410:SSL routines:ssl3_read_bytes:ssl/tls alert handshake failure:ssl/record/rec_layer_s3.c:907:SSL alert number 40

Már-már attól tartok, hogy el kell olvasnom a leírást vagy hasonló rémségek.

https://github.com/openssl/openssl/blob/master/ssl/record/rec_layer_s3…

Hozzászólások

Ha emögött openssl s_client van, és nem használt -connect paramétert, akkor egyszerű a megoldás: add meg a --servername paramétert, hogy az SNI működésbe léphessen. Ezek a szerverek több site-ot is kiszolgálnak (hasonlóan a webszerverek virtuális hosztjaihoz, lásd Apache VirtualHost stb.), és a Server Name Identification dönti el, hogy melyik virtuális hoszthoz akarnak csatlakozni, és így tanúsítványt használják.

Az openssl dokumentáció tök jól leírja:

-servername name

Set the TLS SNI (Server Name Indication) extension in the ClientHello message to the given value. If -servername is not provided, the TLS SNI extension will be populated with the name given to -connect if it follows a DNS name format. If -connect is not provided either, the SNI is set to "localhost". This is the default since OpenSSL 1.1.1.

Even though SNI should normally be a DNS name and not an IP address, if -servername is provided then that name will be sent, regardless of whether it is a DNS name or not.

 

Firefoxból most éppen megy valamennyire, aztán jön ez:

Hiba történt a következőhöz csatlakozáskor: release-assets.githubusercontent.com. Nem lehet biztonságosan kommunikálni a partnerrel: nincs közös titkosító algoritmus.
Hibakód: SSL_ERROR_NO_CYPHER_OVERLAP

Az egyik gyanúsított nyilván valamilyen céges lehallgatóprogram felügyelőprogram a gépemen.

Szerintem nincs ennyire kifinomulva, a védőprogram a beépül a TCP-kapcsolatba és ha nem rokonszenvezik a partnerrel [vö: blocklist] akkor a ServerHello-t saját hatáskörben küldi.

read from 0x7fffdbbd2dd0 [0x7fffdbbe6633] (5 bytes => 5 (0x5))
0000 - 15 03 03 00 02                                    .....
read from 0x7fffdbbd2dd0 [0x7fffdbbe6638] (2 bytes => 2 (0x2))
0000 - 02 28

Received TLS Record
Header:
  Version = TLS 1.2 (0x303)
  Content Type = Alert (21)
  Length = 2
    Level=fatal(2), description=handshake failure(40)