5 votes

Erreur SSL LetsEncrypt - Routines SSL : ssl3_get_record : mauvais numéro de version

J'ai réussi à récupérer un nouveau certificat de LetsEncrypt. Ma configuration VirtualHost est la suivante:

    ServerName example.com
    Redirect 301 / https://example.com/

    Servername example.com
    DocumentRoot /var/www/example.com/wav
    ErrorLog /var/log/apache2/example.com/www/error.log

    SSLEngine On
    SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem

Lorsque j'essaie de vérifier cela avec openssl:

openssl s_client -connect example.com -port 443

J'obtiens ce qui suit:

CONNECTED(00000003)
140229655213824:error:1408F10B:SSL routines:ssl3_get_record:wrong version number:../ssl/record/ssl3_record.c:252:
---
aucun certificat peer disponible
---
Aucun nom de CA de certificat client envoyé
---
La poignée de main SSL a lu 5 octets et écrit 202 octets
Vérification: OK
---
Nouveau, (AUCUN), Cipher est (AUCUN)
Renégociation sécurisée NON supportée
Compression: AUCUNE
Expansion: AUCUNE
Aucun protocole ALPN négocié
    SSL-Session:
    Protocole  : TLSv1.2
    Cipher    : 0000
    ID de session: 
    Contexte de l'ID de session: 
    Clé principale: 
    Identité PSK: Aucune
    PSK indice d'identité: Aucun
    Nom d'utilisateur SRP: Aucun
    Heure de début: 1541086087
    Délai d'attente   : 7200 (sec)
    Code de retour de vérification: 0 (ok)
    Secret principal étendu: non

Donc, il semble que la poignée de main soit correcte mais le certificat n'est pas envoyé.

Il convient de signaler que les journaux Apache ne signalent aucune erreur - juste les messages habituels de "démarrage/arrêt". apache2ctl configtest ne signale aucun problème.

3voto

Steffen Ullrich Points 56226

Donc, il semble que la poignée de main soit correcte mais le certificat n'est pas envoyé.

La poignée de main n'est pas correcte. Le Client a envoyé le ClientHello pour démarrer la poignée de main mais n'a rien reçu d'utile en retour :

                                            |- ClientHello
                                           ---
La poignée de main SSL a lu 5 octets et écrit 202 octets
                      ---
                       |- rien d'utile du serveur

Je ne sais pas ce qu'il obtient dans les 5 octets en retour mais cela ne ressemble pas à TLS (trop court pour un message TLS). Cela pourrait être une mauvaise configuration du serveur qui ne peut pas être vue à partir de la partie de la configuration que vous avez montrée. Cela pourrait aussi être un équipement intermédiaire (pare-feu, répartiteur de charge...) perturbant la connexion. Cela pourrait aussi être que vous ne vous connectez pas au serveur attendu (c'est-à-dire que exemple.com ne résout pas vers votre serveur réel).

Je vous recommande de d'abord vérifier sur le serveur lui-même (c'est-à-dire localhost) et si cela fonctionne, éloignez-vous davantage du serveur avec vos vérifications. Vous pourriez également faire une capture de paquets et voir ce que vous trouverez dans les 5 octets reçus par le client.

2voto

Juste partager pour quiconque se retrouve ici avec le même problème.

C'est mon expérience sous Ubuntu 20 avec Apache

Je modifiais le default-ssl.conf dans le dossier SITES-AVAILABLE mais rien ne se passait. La même erreur ci-dessus se répétait peu importe ce que je faisais.

J'ai copié le default-ssl.conf de sites-available dans le dossier SITES-ENABLED sans la balise IfModule mod_ssl.c et CELA A RÉSOLU LE PROBLÈME.

J'espère que ces informations aideront quelqu'un.

Merci

0voto

Ryan Ye Points 21

J'ai eu la même erreur que vous. Je vous suggère de tester votre connexion https en local, d'ajouter votre nom de domaine à /etc/hosts, par exemple : 127.0.0.1 votredomaine.com afin d'éviter que les paquets ne sortent.

Ensuite, utilisez "links" pour tester la connexion https en environnement local, s'il n'y a pas de problème, alors cela est dû à un problème de pare-feu ou de paramétrage de votre fournisseur d'accès Internet. J'ai finalement constaté que la connexion https en local était OK et j'ai transmis le problème à mon fournisseur d'accès pour qu'ils puissent résoudre ce problème enfin, bonne chance !

0voto

bwolmarans Points 1

Définissez également vos types de fichiers pour SSL, cela fonctionne confirmé Voir la section FilesMatch ? Si elle est manquante, vous verrez cette erreur.

SSLEngine on

SSLOptions +StdEnvVars
SSLOptions +StdEnvVars

SSLOptions +StdEnvVars

SSLCertificateFile /etc/letsencrypt/live/mysite.net/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/mysite.net/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
SSLHonorCipherOrder on
SSLProtocol all -SSLv2 -SSLv3
#SSLCipherSuite EECDH+AES:EDH+AES:-SHA1:EECDH+RC4:EDH+RC4:RC4-SHA:EECDH+AES256:EDH+AES256:AES256-SHA:!aNULL:!eNULL:!EXP:!LOW:!MD5
#SSLCipherSuite "AES256-SHA"
SSLCipherSuite HIGH:!aNULL:!MD5

0voto

guru_florida Points 368

Il semble que le gestionnaire HTTP par défaut *:80 d'apache écoutera également sur 443 pour les adresses IP VirtualHost non appariées, y compris la boucle locale.

Par exemple, sur ma machine, j'ai une adresse IP NAT 192.168.32.5 et bien sûr la boucle locale 127.0.0.1. Si ma configuration de site utilise , alors toutes les requêtes qui aboutissent à 127.0.0.1:443 sont en fait traitées par le gestionnaire HTTP par défaut...et non pas HTTPS. Il a suffi de définir mon entrée de domaine pour le nom d'hôte SSL sur 192.168.32.5 pour résoudre le problème.

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