ssl_error_rx_record_too_long и Apache SSL

196

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

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

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

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

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

РЕШЕНИЕ

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

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

  • 0
    Я думаю, что это также может быть вызвано неверно настроенным прокси на их стороне вещей. Есть мысли по этому поводу?
  • 26
    Так как это было закрыто как не по теме, но, кажется, очень ценный вопрос (очень высоко оценивается в Google за это сообщение об ошибке), может быть, его следует перенести в ServerFault? Это 6-летний вопрос, так что, возможно, SF не был доступен, когда вопрос был задан изначально ...
Показать ещё 6 комментариев
Теги:
ssl
configuration
webserver
mod-ssl

15 ответов

137
Лучший ответ

Ссылка упомянутая 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 сообщение об ошибке и получить первый хит с правильным ответом!: -)

  • 5
    Просто чтобы добавить в список вещей для проверки, после проверки всех этих элементов мне пришлось поменять местами <VirtualHost default : 443> на <VirtualHost fqdn: 443>, чтобы он наконец заработал.
  • 2
    У меня была эта проблема на сервере WHM / Cpanel. Я просто переустановил ssl, чтобы исправить проблему.
Показать ещё 11 комментариев
89

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

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

  • 2
    Я использовал a2enmod ssl но не забудьте a2ensite default-ssl из стандартного vhost conf. Спасибо!
  • 0
    Они должны просто включить default-ssl уже в Ubuntu.
Показать ещё 1 комментарий
29

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

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

Ура!

  • 1
    localhost: 443 загружает plian html, что делать?
  • 0
    @ niran Я думаю, это зависит от настроек вашей ОС по умолчанию для директивы <VirtualHost> . Попробуйте найти значение по умолчанию и настроить его соответствующим образом и убедитесь, что SSL включен на этом VirtualHost.
Показать ещё 2 комментария
17

В моем случае я забыл установить SSLEngine On в конфигурации. Таким образом,

<VirtualHost _default_:443>
  SSLEngine On
  ...
</VirtualHost>

http://httpd.apache.org/docs/2.2/mod/mod_ssl.html#sslengine

8

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

  • 2
    Звучит глупо, но это поймало меня
  • 2
    используйте a2ensite, а не ссылку, это правильный путь на большинстве систем
Показать ещё 2 комментария
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, поэтому ваши результаты могут отличаться для внешнего доступа, но это сработало для меня.

  • 9
    Команды 'a2ensite default-ssl' и 'a2enmodule ssl' упрощают управление символическими ссылками модулей и сайтов.
4

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

  • 0
    Я могу подтвердить, что это была проблема для меня тоже ... неправильный IP-адрес
4

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

  • 0
    Я видел скриншот, а его нет: 80 Попробуйте сами: monkeyfood.cashboardapp.com
3

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

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

2

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

$HTTPD -k $ARGV

в

$HTTPD -k $ARGV -DSSL

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

1

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

1

Моя проблема вызвана 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-подключения...

0

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

0

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

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

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

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

0

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

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

  • 0
    Некоторые прокси-серверы возвращают HTTP-ответ об ошибке на HTTPS-запрос, которого он не ожидает (например, если вы прошли через неправильный прокси-сервер или неправильно настроен прокси-сервер). Это может быть действительно трудно диагностировать, потому что браузеры просто отклонят весь диалог и выдают ошибку, вместо того, чтобы показывать вам сообщение об ошибке прокси. Wireshark делает работу, хотя. Просто столкнулся с этим сам.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню