Ssl_error_rx_record_too_long и Apache SSL

У меня есть клиент, пытающийся получить доступ к одному из моих сайтов, и они продолжают получать эту ошибку > ssl_error_rx_record_too_long

Они получают эту ошибку во всех браузерах, на всех платформах. Я вообще не могу воспроизвести проблему.

Мой сервер и я находятся в США, клиент находится в Индии.

Я столкнулся с проблемой, и основным источником кажется, что порт SSL говорит в HTTP. Я проверил свой сервер, и этого не происходит. Я попробовал решение, упомянутое здесь, но клиент заявил, что он не исправит проблему.

Может ли кто-нибудь сказать мне, как я могу это исправить, или как я могу воспроизвести это?

РЕШЕНИЕ

Оказалось, что у клиента был неверно настроенный локальный прокси-сервер!

Надеюсь, что кто-нибудь найдет этот вопрос, пытаясь отладить его в будущем.

Ответ 1

Ссылка упомянутая Subimage, была права на деньги для меня. Он предложил изменить тег виртуального хоста, то есть от <VirtualHost myserver.example.com:443> до <VirtualHost _default_:443>

Код ошибки: ssl_error_rx_record_too_long

Это обычно означает, что реализация SSL на вашем сервере неверна. Ошибка обычно вызвана проблемой на стороне сервера, которую администратор сервера должен будет исследовать.

Ниже приведены некоторые советы, которые мы рекомендуем попробовать.

  • Убедитесь, что порт 443 открыт и включен на вашем сервере. Это стандартный порт для связи https.

  • Если SSL использует нестандартный порт, FireFox 3 может иногда давать эту ошибку. Убедитесь, что SSL работает на порту 443.

  • Если Apache2 проверяет, что вы используете порт 443 для SSL. Это можно сделать, установив файл ports.conf следующим образом

    Listen 80
    Listen 443 https
    
  • Убедитесь, что у вас не более одного SSL-сертификата, использующего один и тот же IP-адрес. Убедитесь, что все SSL-сертификаты используют собственный выделенный IP-адрес.

  • Если вы используете Apache2, проверьте свою конфигурацию vhost. Некоторые пользователи сообщили, что изменение <VirtualHost> на _default_ разрешило ошибку.

  • Убедитесь, что сертификат SSL не истек.

  • Попробуйте указать Cipher:

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

Это исправило мою проблему. Редко, что я google сообщение об ошибке и получить первый хит с правильным ответом!: -)

Ответ 2

Решение для меня состояло в том, что default-ssl не был включен в apache 2.... просто поместив SSLEngine On

Мне пришлось выполнить a2ensite default-ssl, и все сработало.

Ответ 3

В моем случае мне пришлось изменить < VirtualHost * > обратно в < VirtualHost *: 80 > (который является значением по умолчанию для Ubuntu). В противном случае порт 443 не использовал SSL и отправлял простой HTML обратно в браузер.

Вы можете проверить, достаточно ли вам в этом случае: просто подключитесь к серверу http://www.example.com:443. Если вы видите простой HTML, ваш Apache не использует SSL на порту 443 вообще, скорее всего, из-за неправильной конфигурации VirtualHost.

Ура!

Ответ 5

Если у вас есть ошибка после установки, новый https-vhost и конфигурация, кажется, правы, не забудьте также установить ссылку в sites-enabled.

Ответ 6

Старый вопрос, но первый результат в Google для меня, поэтому вот что мне нужно было сделать.

Ubuntu 12.04 Рабочий стол с установленным Apache

Вся конфигурация и mod_ssl были установлены, когда я установил Apache, но он еще не был связан в правильных местах. Примечание: все пути ниже относятся к /etc/apache2/

mod_ssl хранится в ./mods-available, а конфигурация сайта SSL находится в ./sites-available, вам просто нужно связать их с их правильными местами в ./mods-enabled и ./sites-enabled

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

Перезапустите Apache, и он должен работать. Я пытался получить доступ к https://localhost, поэтому ваши результаты могут отличаться для внешнего доступа, но это сработало для меня.

Ответ 7

Запросите у пользователя точный URL-адрес, который они используют в своем браузере. Если они входят в https://your.site:80, они могут получить ошибку ssl_error_rx_record_too_long.

Ответ 8

В моем случае у меня был неправильный IP-адрес в файле виртуального хоста. Слушание было 443, а строфа была <VirtualHost 192.168.0.1:443>, но на сервере не было адреса 192.168.0.1!

Ответ 9

См. эту ссылку.

Я просмотрел все файлы журнала Apache, пока не нашел фактическую ошибку (я изменил <VirtualHost> с _default_ на мой fqdn). Когда я исправил эту ошибку, все работало нормально.

Ответ 10

В моем случае проблема заключалась в том, что https не удалось запустить правильно, потому что Listen 443 был в "IfDefine SSL" derective, но мой apache не начинал с опции -DSSL. Исправлено было изменение apachectl script в:

$HTTPD -k $ARGV

в

$HTTPD -k $ARGV -DSSL

Надеюсь, что кто-то поможет.

Ответ 11

Моя проблема вызвана LOW MTU через 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

Fix: интерфейс netsh интерфейс интерфейса ipv4 "Беспроводное сетевое соединение" mtu = 1400

Это может быть проблема и для не VPN-подключения...

Ответ 12

У меня была испорченная конфигурация виртуального хоста. Помните, что вам нужен один виртуальный хост без SSL для порта 80, а другой - с SSL для порта 443. У вас не может быть как на одном виртуальном хосте, так и в настройках, созданных с помощью webmin.

Ответ 13

У меня была такая же проблема в некоторых браузерах для доступа к моему сайту SSL. Я обнаружил, что мне пришлось предоставить fireFox правильный прокси (FireFox обращался непосредственно в Интернет).

В зависимости от конфигурации lan (туннелирование, фильтрация, перенаправление прокси) режим "прямого доступа в Интернет" для FireFox выдает эту ошибку.

Ответ 14

Вы также можете попробовать исправить файл hosts.

Сохраните файл vhost с полным доменом и добавьте имя хоста в файл hosts /etc/hosts (debian)

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

После перезапуска apache2 ошибка должна исчезнуть.

Ответ 15

Для меня решение заключалось в том, что мой ddclient не выполнялся должным образом...