ssl_error_rx_record_too_long et Apache SSL [fermé]

242

J'ai un client qui essaie d'accéder à l'un de mes sites, et il continue de recevoir cette erreur> ssl_error_rx_record_too_long

Ils obtiennent cette erreur sur tous les navigateurs, toutes les plateformes. Je ne peux pas reproduire le problème du tout.

Mon serveur et moi-même sommes situés aux États-Unis, le client est situé en Inde.

J'ai cherché sur Google le problème, et la source principale semble être que le port SSL parle en HTTP. J'ai vérifié mon serveur et cela ne se produit pas. J'ai essayé la solution mentionnée ici , mais le client a déclaré qu'il n'avait pas résolu le problème.

Quelqu'un peut-il me dire comment résoudre ce problème ou comment le reproduire ???

LA SOLUTION

Il s'avère que le client avait un proxy local mal configuré!

J'espère que cela aidera quiconque à trouver cette question en essayant de la déboguer à l'avenir.

Sous-image
la source
Je pense que cela pourrait également être causé par un proxy mal configuré à leurs côtés. Avez-vous également des réflexions à ce sujet?
Subimage
34
Puisqu'il a été fermé comme hors sujet mais semble être une question très précieuse (se classe très haut dans Google pour ce message d'erreur) peut-être devrait-il être déplacé vers ServerFault? C'est une question de 6 ans, donc peut-être que SF n'était pas disponible lorsque la question a été posée initialement ...
kdmurray
13
Il s'agit du premier résultat de recherche Web pour SSL_ERROR_RX_RECORD_TOO_LONG. Il a 32 favoris, 193 votes positifs, plusieurs réponses très positives ... et il est fermé comme hors sujet selon une personne qui sait mieux que nous que cette question n'a pas le droit d'exister.
Vladimir Kornea
2
Je pourrais déboguer mes problèmes de certificat générant ce message avecopenssl s_client -connect my-domain.tld:443
azmeuk
2
@Subimage "LA SOLUTION Il s'avère que le client avait un proxy local mal configuré!" Veuillez expliquer ce que cela signifie. Vous pourriez être plus précis; c'est frustrant de savoir que vous avez la solution mais vous ne l'
énoncez

Réponses:

169

Le lien mentionné par Subimage était juste sur l'argent pour moi. Il a suggéré de changer l'étiquette d'hôte virtuel, à savoir, à partir <VirtualHost myserver.example.com:443>de<VirtualHost _default_:443>

Code d'erreur: ssl_error_rx_record_too_long

Cela signifie généralement que l'implémentation de SSL sur votre serveur n'est pas correcte. L'erreur est généralement causée par un problème côté serveur que l'administrateur du serveur devra étudier.

Voici certaines choses que nous vous recommandons d'essayer.

  • Assurez-vous que le port 443 est ouvert et activé sur votre serveur. Il s'agit du port standard pour les communications https.

  • Si SSL utilise un port non standard, FireFox 3 peut parfois donner cette erreur. Assurez-vous que SSL s'exécute sur le port 443.

  • Si vous utilisez Apache2, vérifiez que vous utilisez le port 443 pour SSL. Cela peut être fait en définissant le fichier ports.conf comme suit

    Listen 80
    Listen 443 https
    
  • Assurez-vous que vous n'avez pas plus d'un certificat SSL partageant la même IP. Veuillez vous assurer que tous les certificats SSL utilisent leur propre IP dédiée.

  • Si vous utilisez Apache2, vérifiez votre configuration vhost. Certains utilisateurs ont signalé une modification <VirtualHost>pour _default_résoudre l'erreur.

Cela a résolu mon problème. Il est rare que je recherche sur Google un message d'erreur et que j'obtienne le premier coup avec la bonne réponse! :-)

En plus de ce qui précède , voici d'autres solutions que d'autres personnes ont trouvées à l'origine du problème:

  • Assurez-vous que votre certificat SSL n'est pas expiré

  • Essayez de spécifier le chiffre:

    SSLCipherSuite ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM:+SSLv3

Randall
la source
5
Juste pour ajouter à la liste des choses à vérifier, après avoir vérifié tous ces éléments, j'ai dû échanger mon <VirtualHost default : 443> à <VirtualHost fqdn: 443> pour le faire enfin fonctionner.
JimP
2
J'ai eu ce problème sur un serveur whm / Cpanel. Je viens de réinstaller le SSL pour résoudre le problème.
Mike D
15
_default_:443travaillé pour moi. Non je peux m'endormir!
Garfonzo
Une autre chose à vérifier, vous pouvez avoir SSL par défaut, mais si vous avez un nouveau virthost avec ce problème, vous n'avez peut-être pas encore fourni la configuration SSL même si le port est ouvert. (alias, oups, j'ai raté une étape.)
Josiah
1
Vérifiez également et assurez-vous que vous n'avez pas d'autres fichiers de configuration VirtualHost écoutant le port 443 avec des paramètres incorrects. Un mauvais fichier de configuration peut faire tomber tous les sites SSL.
Nostalg.io
120

La solution pour moi était que ce default-ssln'était pas activé dans apache 2 .... juste mettreSSLEngine On

J'ai dû exécuter a2ensite default-sslet tout a fonctionné.

Webnet
la source
4
J'ai utilisé a2enmod sslmais oublie de a2ensite default-sslpar défaut vhost conf. Je vous remercie!
m3nda
Ils devraient vraiment juste être default-sslactivés déjà dans Ubuntu.
BadHorsie
32

Dans mon cas, j'ai dû remplacer <VirtualHost *> par <VirtualHost *: 80> (qui est la valeur par défaut sur Ubuntu). Sinon, le port 443 n'utilisait pas SSL et renvoyait du HTML brut au navigateur.

Vous pouvez vérifier si c'est votre cas assez facilement: connectez-vous simplement à votre serveur http://www.example.com:443 . Si vous voyez du HTML simple, votre Apache n'utilise pas du tout SSL sur le port 443, probablement en raison d'une mauvaise configuration de VirtualHost.

À votre santé!

alexm
la source
1
localhost: 443 charges plian html, que faire?
niran
@niran Je suppose que cela dépend des paramètres par défaut de votre système d'exploitation pour la <VirtualHost>directive. Essayez de trouver la valeur par défaut et ajustez-la en conséquence et assurez-vous que SSL est activé sur ce VirtualHost.
alexm
1
J'ai eu ce problème avec un vhost parce que 000-default.conf avait une section inutilisée: 443 sans SSLEngine. Le journal Apache l'a montré, ce qui m'a mis sur la bonne voie:AH01916: Init: (myhost.example.com:443) You configured HTTP(80) on the standard HTTPS(443) port!
mivk
Mon problème était que je n'avais pas exécuté "sudo a2ensite default-ssl.conf". La conf de ssl n'était simplement pas dans le répertoire activé par les sites, seulement dans les sites disponibles.
Json
10

Si vous avez l'erreur après avoir configuré un nouveau vhost https et que la configuration semble correcte, n'oubliez pas de vous connecter sites-enabledégalement.

homme de forage
la source
2
Ça a l'
air
2
utiliser a2ensite plutôt qu'un lien, c'est la bonne façon sur la plupart des systèmes
AsTeR
1
Vérifiez également la règle sur apache2.conf (Ubuntu): IncludeOptional sites-enabled / *. Conf. Assurez-vous que vos liens se terminent par ".conf" ou modifiez cette règle pour inclure tous les fichiers.
lepe
1
J'ai créé la configuration du site avec une syntaxe correcte et je l'ai liée aux sites disponibles. Le problème était: le nom de ma configuration ne se terminait pas par ".conf", en tant que tel, il n'a jamais été chargé et j'ai obtenu l'erreur ci-dessus. Les configs dans mon cas ont été chargés avec la directive "IncludeOptional sites-enabled / *. Conf" donc la config doit aussi être nommée <What> .conf. Trivial, mais ne provoque aucune erreur de syntaxe (jamais chargé après tout), et irritant car un ls l'a montré dans les sites disponibles ...
roland.minner
7

Vieille question, mais premier résultat dans Google pour moi, alors voici ce que je devais faire.

Ubuntu 12.04 Desktop avec Apache installé

Toute la configuration et mod_ssl ont été installés lorsque j'ai installé Apache, mais ils n'étaient pas encore liés aux bons endroits. Remarque: tous les chemins ci-dessous sont relatifs à / etc / apache2 /

mod_sslest stocké dans ./mods-available, et la configuration du site SSL est dans ./sites-available, il vous suffit de les lier à leurs emplacements corrects dans ./mods-enabledet./sites-enabled

cd /etc/apache2
cd ./mods-enabled
sudo ln -s ../mods-available/ssl.* ./
cd ../sites-enabled
sudo ln -s ../sites-available/default-ssl ./

Redémarrez Apache et cela devrait fonctionner. J'essayais d'accéder à https: // localhost , donc vos résultats peuvent varier pour l'accès externe, mais cela a fonctionné pour moi.

Tarka
la source
9
Les commandes 'a2ensite default-ssl' et 'a2enmodule ssl' simplifient la gestion des liens symboliques des modules et des sites.
Josiah
4

Demandez à l'utilisateur l'URL exacte qu'il utilise dans son navigateur. S'ils entrent https://your.site:80 , ils peuvent recevoir l'erreur ssl_error_rx_record_too_long.

dan-manges
la source
J'ai vu une capture d'écran et ce n'est pas le cas: 80 Essayez par vous-même: monkeyfood.cashboardapp.com
Subimage
4

Dans mon cas, j'avais la mauvaise adresse IP dans le fichier hôte virtuel. L'écoute était de 443 et la strophe l'était <VirtualHost 192.168.0.1:443>mais le serveur n'avait pas l'adresse 192.168.0.1!

fimbulvetr
la source
Je peux confirmer que c'était aussi un problème pour moi ... mauvaise adresse IP
StanleyD
3

Veuillez voir ce lien .

J'ai regardé dans tous mes fichiers journaux apache jusqu'à ce que je trouve l'erreur réelle (j'avais changé le <VirtualHost>de _default_en mon fqdn). Lorsque j'ai corrigé cette erreur, tout a bien fonctionné.

rogovsky
la source
2

Dans mon cas, le problème était que https n'a pas pu démarrer correctement car Listen 443 était dans le dérivé "IfDefine SSL", mais mon apache n'a pas commencé avec l'option -DSSL. Le correctif consistait à changer mon script apachectl dans:

$HTTPD -k $ARGV

à:

$HTTPD -k $ARGV -DSSL

J'espère que cela aide quelqu'un.

Jeff Atwood
la source
1

Mon problème était dû à un MTU FAIBLE sur une connexion VPN.

netsh interface ipv4 show inter

Idx  Met   MTU   State        Name
---  ---  -----  -----------  -------------------
  1 4275 4294967295  connected    Loopback Pseudo-Interface 1
 10 4250   **1300**  connected    Wireless Network Connection
 31   25   1400  connected    Remote Access to XYZ Network

Correction: interface netsh ipv4 set interface "Connexion réseau sans fil" mtu = 1400

Cela peut également être un problème sur une connexion non VPN ...


la source
1

J'ai eu une configuration d'hôte virtuel foirée. N'oubliez pas que vous avez besoin d'un hôte virtuel sans SSL pour le port 80 et d'un autre avec SSL pour le port 443. Vous ne pouvez pas avoir les deux dans un hôte virtuel, comme la configuration générée par webmin a essayé de le faire.


la source
0

J'ai eu le même problème dans certains navigateurs pour accéder à mon site SSL. J'ai trouvé que je devais donner à fireFox le bon proxy (FireFox directement à Internet).

Selon la configuration du réseau local (Tunnellisation, filtrage, redirection de proxy), le mode «accès direct à Internet» pour FireFox renvoie cette erreur.

Pierre-Gilles Levallois
la source
Certains mandataires renvoient une réponse d'erreur HTTP à une demande HTTPS à laquelle il ne s'attend pas (par exemple, si vous avez utilisé le mauvais proxy ou si le proxy est mal configuré). Cela peut être très difficile à diagnostiquer car les navigateurs rejetteront simplement toute la conversation et afficheront une erreur, plutôt que de vous montrer le message d'erreur du proxy. Wireshark fait le travail cependant. Je suis juste tombé dessus moi-même.
Courses de légèreté en orbite
0

Vous pouvez également essayer de réparer le fichier hosts.

Conservez le fichier vhost avec le domaine complet et ajoutez le nom d'hôte dans le fichier hosts / etc / hosts (debian)

ip.ip.ip.ip name name.domain.com

Après avoir redémarré apache2, l'erreur devrait avoir disparu.

gaspard
la source
0

Pour moi, la solution était que mon client ne se connectait pas correctement ...

Anon
la source