ssl_error_rx_record_too_long y Apache SSL [cerrado]

242

Tengo un cliente que intenta acceder a uno de mis sitios, y siguen recibiendo este error> ssl_error_rx_record_too_long

Reciben este error en todos los navegadores, todas las plataformas. No puedo reproducir el problema en absoluto.

Mi servidor y yo estamos ubicados en los EE. UU., El cliente está ubicado en la India.

Busqué en Google el problema, y ​​la fuente principal parece ser que el puerto SSL está hablando en HTTP. Revisé mi servidor, y esto no está sucediendo. Probé la solución mencionada aquí , pero el cliente ha declarado que no solucionó el problema.

¿Alguien puede decirme cómo puedo solucionar esto o cómo puedo reproducir esto?

LA SOLUCIÓN

Resulta que el cliente tenía un proxy local mal configurado.

Espero que ayude a cualquiera a encontrar esta pregunta tratando de depurarla en el futuro.

Subimagen
fuente
Estoy pensando que también podría ser causado por un proxy mal configurado a su lado. ¿Alguna idea sobre eso también?
Subimagen
34
Dado que se cerró como tema fuera de tema, pero parece ser una pregunta muy valiosa (ocupa un lugar muy alto en Google para este mensaje de error), ¿tal vez debería trasladarse a ServerFault? Es una pregunta de hace 6 años, por lo que quizás SF no estaba disponible cuando la pregunta se hizo inicialmente ...
kdmurray
13
Este es el primer resultado de búsqueda web para SSL_ERROR_RX_RECORD_TOO_LONG. Tiene 32 favoritos, 193 votos a favor, múltiples respuestas muy votadas ... y está cerrado como fuera de tema según una persona que sabe mejor que el resto de nosotros que esta pregunta no tiene derecho a existir.
Vladimir Kornea
2
Podría depurar mis problemas de certificado generando este mensaje conopenssl s_client -connect my-domain.tld:443
azmeuk
2
@Subimage "¡LA SOLUCIÓN resulta que el cliente tenía un proxy local mal configurado!" Por favor explique lo que esto significa. Podrías ser más específico; es frustrante saber que tienes la solución pero no la
explicas

Respuestas:

169

El enlace mencionado por Subimage fue el adecuado para mí. Sugirió cambiar la etiqueta de host virtual, es decir, de <VirtualHost myserver.example.com:443>a<VirtualHost _default_:443>

Código de error: ssl_error_rx_record_too_long

Esto generalmente significa que la implementación de SSL en su servidor no es correcta. El error generalmente es causado por un problema del lado del servidor que el administrador del servidor deberá investigar.

A continuación hay algunas cosas que recomendamos probar.

  • Asegúrese de que el puerto 443 esté abierto y habilitado en su servidor. Este es el puerto estándar para las comunicaciones https.

  • Si SSL está utilizando un puerto no estándar, FireFox 3 a veces puede dar este error. Asegúrese de que SSL se esté ejecutando en el puerto 443.

  • Si utiliza Apache2, compruebe que está utilizando el puerto 443 para SSL. Esto se puede hacer configurando el archivo ports.conf de la siguiente manera

    Listen 80
    Listen 443 https
    
  • Asegúrese de no tener más de un certificado SSL que comparta la misma IP. Asegúrese de que todos los certificados SSL utilicen su propia IP dedicada.

  • Si usa Apache2, verifique su configuración de vhost. Algunos usuarios han informado cambios <VirtualHost>para _default_resolver el error.

Eso solucionó mi problema. ¡Es raro que googlee un mensaje de error y obtenga el primer resultado con la respuesta correcta! :-)

Además de lo anterior , estas son algunas otras soluciones que otras personas han encontrado que causan el problema:

  • Asegúrese de que su certificado SSL no haya caducado

  • Intente especificar el cifrado:

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

Randall
fuente
55
Solo para agregar a la lista de cosas para verificar, después de verificar todos estos elementos, tuve que cambiar mi <VirtualHost default : 443> a <VirtualHost fqdn: 443> para que finalmente funcione.
JimP
2
Tuve este problema en un servidor WHM / Cpanel. Acabo de reinstalar el ssl para solucionar el problema.
Mike D
15
_default_:443trabajó para mi. No, puedo ir a dormir!
Garfonzo
Otra cosa para verificar, es posible que tenga SSL por defecto, pero si tiene un nuevo virthost con este problema, es posible que aún no haya proporcionado la configuración SSL aunque el puerto esté abierto. (alias, oops, perdí un paso.)
Josiah
1
Además, verifique y asegúrese de que no tiene otros archivos conf de VirtualHost que escuchen el puerto 443 con configuraciones incorrectas. Un archivo de configuración incorrecto puede derribar todos los sitios SSL.
Nostalg.io
120

La solución para mí fue que default-sslno estaba habilitado en Apache 2 ... simplemente poniendoSSLEngine On

Tuve que ejecutar a2ensite default-ssly todo funcionó.

Webnet
fuente
44
Lo he usado, a2enmod sslpero olvídate a2ensite default-sslde la configuración predeterminada de vhost. ¡Gracias!
m3nda
Realmente deberían estar default-sslhabilitados ya en Ubuntu.
BadHorsie
32

En mi caso, tuve que cambiar el <VirtualHost *> a <VirtualHost *: 80> (que es el predeterminado en Ubuntu). De lo contrario, el puerto 443 no estaba usando SSL y estaba enviando HTML sin formato al navegador.

Puede verificar si este es su caso con bastante facilidad: simplemente conéctese a su servidor http://www.example.com:443 . Si ve HTML simple, su Apache no está utilizando SSL en el puerto 443, probablemente debido a una configuración incorrecta de VirtualHost.

¡Salud!

alexm
fuente
1
localhost: 443 cargas html plian, ¿qué hacer?
niran
@niran Supongo que depende de los valores predeterminados de su sistema operativo para la <VirtualHost>directiva. Intente averiguar el valor predeterminado y ajústelo en consecuencia y asegúrese de que SSL esté habilitado en ese VirtualHost.
alexm
1
Tuve este problema con un vhost porque 000-default.conf tenía una sección no utilizada: 443 sin SSLEngine. El registro de Apache mostró esto, lo que me puso en el camino correcto:AH01916: Init: (myhost.example.com:443) You configured HTTP(80) on the standard HTTPS(443) port!
mivk
Mi problema era que no había ejecutado "sudo a2ensite default-ssl.conf". El ssl conf simplemente no estaba en el directorio habilitado para sitios, solo en sitios disponibles.
Json
10

Si tiene el error después de configurar un nuevo vhost https y la configuración parece ser correcta, recuerde vincular sites-enabledtambién.

perforador
fuente
2
Suena estúpido pero me atrapó
Alexei Tenitski
2
use a2ensite en lugar de un enlace, esta es la forma correcta en la mayoría de los sistemas
AsTeR
1
Además, verifique la regla en apache2.conf (Ubuntu): IncludeOptional sites-enabled / *. Conf. Asegúrese de que sus enlaces terminen en ".conf" o cambie esa regla para incluir todos los archivos.
lepe
1
Creé la configuración del sitio con la sintaxis correcta y la vinculé a sitios disponibles. El problema era: el nombre de mi configuración no terminaba con ".conf", como tal, nunca se cargó y obtuve el error anterior. Las configuraciones en mi caso se cargaron con la directiva "IncludeOptional sites-enabled / *. Conf", por lo tanto, la configuración también debe ser nombre <Whatever> .conf. Trivial, pero no causa ningún error de sintaxis (nunca cargado después de todo), e irritante porque un ls lo mostró en sitios disponibles ...
roland.minner
7

Antigua pregunta, pero el primer resultado en Google para mí, así que esto es lo que tenía que hacer.

Escritorio Ubuntu 12.04 con Apache instalado

Toda la configuración y mod_ssl se instalaron cuando instalé Apache, pero todavía no estaba vinculado en los lugares correctos. Nota: todas las rutas a continuación son relativas a / etc / apache2 /

mod_sslse almacena en ./mods-available, y la configuración del sitio SSL está en ./sites-available, sólo hay que vincularlos a sus lugares correctos en ./mods-enabledy./sites-enabled

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

Reinicie Apache y debería funcionar. Intenté acceder a https: // localhost , por lo que sus resultados pueden variar para el acceso externo, pero esto funcionó para mí.

Tarka
fuente
99
Los comandos 'a2ensite default-ssl' y 'a2enmodule ssl' simplifican la gestión de los enlaces simbólicos de los módulos y sitios.
Josiah
4

Pídale al usuario la URL exacta que está usando en su navegador. Si ingresan https://your.site:80 , pueden recibir el error ssl_error_rx_record_too_long.

dan-manges
fuente
Vi una captura de pantalla y no es: 80 intentarlo por sí mismo: monkeyfood.cashboardapp.com
subimagen
4

En mi caso, tenía la dirección IP incorrecta en el archivo de host virtual. La escucha fue 443, y la estrofa fue <VirtualHost 192.168.0.1:443>pero el servidor no tenía la dirección 192.168.0.1.

fimbulvetr
fuente
Puedo confirmar que esto también fue un problema para mí ... dirección IP incorrecta
StanleyD
3

Por favor vea este enlace .

Miré en todos mis archivos de registro de Apache hasta que encontré el error real (había cambiado el <VirtualHost>de _default_mi fqdn). Cuando solucioné este error, todo funcionó bien.

rogovsky
fuente
2

En mi caso, el problema era que https no pudo iniciarse correctamente porque Listen 443 estaba en "IfDefine SSL", pero mi apache no comenzó con la opción -DSSL. La solución fue cambiar mi script apachectl en:

$HTTPD -k $ARGV

a:

$HTTPD -k $ARGV -DSSL

Espero que ayude a alguien.

Jeff Atwood
fuente
1

Mi problema se debió a una MTU BAJA a través de una conexión 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

Corrección: interfaz netsh ipv4 set interface "Conexión de red inalámbrica" ​​mtu = 1400

También puede ser un problema con una conexión que no sea VPN ...


fuente
1

Tenía una configuración de host virtual en mal estado. Recuerde que necesita un host virtual sin SSL para el puerto 80 y otro con SSL para el puerto 443. No puede tener ambos en un host virtual, como intentó hacer la configuración generada por webmin.


fuente
0

Tuve el mismo problema en algunos navegadores para acceder a mi sitio SSL. Descubrí que tenía que darle a fireFox el proxy correcto (FireFox estaba accediendo directamente a internet).

Dependiendo de la configuración de LAN (túnel, filtrado, redirección de proxy), el modo de "acceso directo a internet" para Firefox arroja este error.

Pierre-Gilles Levallois
fuente
Algunos proxies devuelven una respuesta de error HTTP a una solicitud HTTPS que no está esperando (por ejemplo, si pasó por el proxy incorrecto o el proxy está mal configurado). Esto puede ser realmente difícil de diagnosticar porque los navegadores simplemente rechazarán toda la conversación y arrojarán un error, en lugar de mostrarle el mensaje de error del proxy. Sin embargo, Wireshark hace el trabajo. Me encontré con esto yo mismo.
Carreras de ligereza en órbita
0

También puede intentar arreglar el archivo de hosts.

Mantenga el archivo vhost con el dominio completo y agregue el nombre de host en el archivo de hosts / etc / hosts (debian)

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

Después de reiniciar apache2, el error debería desaparecer.

gaspard
fuente
0

Para mí, la solución fue que mi ddclient no estaba cronneando correctamente ...

Luego
fuente