177 votes

curl : (35) error:1408F10B:Routines SSL:ssl3_get_record:mauvais numéro de version

Lorsque j'essaie de me connecter à un serveur (par exemple google.com) en utilisant curl (ou libcurl), j'obtiens le message d'erreur suivant :

curl : (35) error:1408F10B:Routines SSL:ssl3_get_record:mauvais numéro de version

Sortie verbeuse :

$ curl www.google.com --verbose  
* Rebuilt URL to: www.google.com/  
* Uses proxy env variable no_proxy == 'localhost,127.0.0.1,localaddress,.localdomain.com'  
* Uses proxy env variable http_proxy == 'https://proxy.in.tum.de:8080'  
*   Trying 131.159.0.2...  
* TCP_NODELAY set  
* Connected to proxy.in.tum.de (131.159.0.2) port 8080 (#0)  
* successfully set certificate verify locations:  
*   CAfile: /etc/ssl/certs/ca-certificates.crt  
  CApath: none  
* TLSv1.3 (OUT), TLS handshake, Client hello (1):  
* error:1408F10B:SSL routines:ssl3_get_record:wrong version number  
* Closing connection 0  
curl: (35) error:1408F10B:SSL routines:ssl3_get_record:wrong version number'  

Pour une raison quelconque, curl semble utiliser TLSv1.3 même si je le force à utiliser TLSv1.2 avec la commande --tlsv1.2 (il imprimera toujours TLSv1.3 (OUT), ...". J'utilise la dernière version de Curl et d'OpenSSL :

$ curl -V  
curl 7.61.0-DEV (x86_64-pc-linux-gnu) libcurl/7.61.0-DEV OpenSSL/1.1.1 zlib/1.2.8  
Release-Date: [unreleased]  
Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp  
Features: AsynchDNS IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP UnixSockets HTTPS-proxy  

Je pense que c'est un problème lié à mon installation des programmes. Quelqu'un peut-il m'expliquer ce que signifie ce message d'erreur ?

269voto

Steffen Ullrich Points 56226
* Uses proxy env variable http_proxy == 'https://proxy.in.tum.de:8080'   
                                         ^^^^^

Le site https:// est erronée, elle devrait être http:// . Le proxy lui-même doit être accessible par HTTP et non HTTPS, même si l'URL cible est HTTPS. Le proxy traitera néanmoins correctement la connexion HTTPS et conservera le cryptage de bout en bout. Voir Méthode HTTP CONNECT pour plus de détails sur la façon dont cela est fait.

9 votes

Si vous avez cette erreur dans Docker, exposer le port 443 au public a résolu ce problème

30voto

Arcsector Points 512

Si quelqu'un obtient cette erreur en utilisant Nginx, essayez d'ajouter ce qui suit à la configuration de votre serveur :

server {
    listen 443 ssl;
    ...
}

Le problème vient du fait que Nginx sert un serveur HTTP à un client qui attend HTTPS sur le port sur lequel vous écoutez. Lorsque vous spécifiez ssl dans le listen permet de clarifier la situation du côté du serveur.

5 votes

Merci, cela m'a conduit à la solution, j'ai simplement oublié le 'ssl' dans la ligne de configuration de nginx mentionnée.

1 votes

Le ssl était un problème pour moi aussi

11voto

Sachit Yadav Points 101

Réponse simple

Si vous êtes derrière un serveur proxy, veuillez configurer le proxy pour curl. Le curl n'est pas capable de se connecter au serveur et affiche un numéro de version erroné. Définissez le proxy en ouvrant subl ~/.curlrc ou utilisez tout autre éditeur de texte. Ajoutez ensuite la ligne suivante au fichier : proxy= proxyserver:proxyport Par exemple, proxy = 10.8.0.1:8080

Si vous n'êtes pas derrière un proxy, assurez-vous que le fichier curlrc ne contient pas les paramètres du proxy.

0voto

Biddut Mitra Points 11

Plus simplement en une ligne :

proxy=192.168.2.1:8080;curl -v exemple.com

ex. $proxy=192.168.2.1:8080;curl -v exemple.com

xxxxxxxxx-ASUS:~$ proxy=192.168.2.1:8080;curl -v https://google.com|head -c 15 % Total % Reçu % Xferd Vitesse moyenne Temps Temps Temps Courant Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0

  • Essai de 172.217.163.46:443...
  • TCP_NODELAY set
  • Connecté à google.com (172.217.163.46) port 443 (#0)
  • ALPN, offre h2
  • ALPN, offrant http/1.1
  • a réussi à définir les emplacements de vérification des certificats :
  • CAfile : /etc/ssl/certs/ca-certificates.crt CApath : /etc/ssl/certs } [5 octets de données]
  • TLSv1.3 (OUT), poignée de main TLS, salut du client (1) : } [512 octets de données]

0voto

Ilyich Points 648

Dans mon cas, la cause de cette erreur était que mon serveur web n'était pas configuré pour écouter l'IPv6 sur le port SSL 443. Après l'avoir activé, l'erreur a disparu.

Voici comment le faire pour Apache :

<VirtualHost ip.v4.address:443 ip:v::6:address:443>
...
</VirtualHost>

Et pour nginx :

listen 443 ssl http2;
listen [::]:443 ssl http2;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X