ssl_error_rx_record_too_long и Apache SSL [закрыто]


242

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

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

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

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

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

РЕШЕНИЕ

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

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


Я думаю, что это также может быть вызвано неверно настроенным прокси на их стороне вещей. Есть мысли по этому поводу?
Subimage

34
Так как это было закрыто как не по теме, но, кажется, очень ценный вопрос (очень высоко оценивается в Google за это сообщение об ошибке), может быть, его следует перенести в ServerFault? Это 6-летний вопрос, поэтому, возможно, SF не был доступен, когда вопрос был задан изначально ...
kdmurray

13
Это первый результат веб-поиска для SSL_ERROR_RX_RECORD_TOO_LONG. Он имеет 32 фаворита, 193 отзыва, множество ответов с большим количеством голосов ... и он закрыт как не по теме, по словам человека, который лучше нас знает, что этот вопрос не имеет права на существование.
Владимир Корнея

2
Я мог бы отладить проблемы с сертификатами, генерируя это сообщение сopenssl s_client -connect my-domain.tld:443
azmeuk

2
@Subimage "РЕШЕНИЕ Оказывается, у клиента неправильно настроен локальный прокси!" Пожалуйста, объясните, что это значит. Вы могли бы быть более конкретным;
огорчительно

Ответы:


169

Ссылка упоминается Растр было право на деньги для меня. Он предложил изменить виртуальный тег хоста, то есть, от <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 не истек

  • Попробуйте указать Шифр:

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


5
Просто чтобы добавить в список вещей для проверки, после проверки всех этих элементов мне пришлось поменять местами <VirtualHost default : 443> на <VirtualHost fqdn: 443>, чтобы он наконец заработал.
JimP

2
У меня была эта проблема на сервере WHM / Cpanel. Я просто переустановил ssl, чтобы исправить проблему.
Майк Д

15
_default_:443работал на меня. Нет, я могу идти спать!
Гарфонзо

Еще одна вещь, которую нужно проверить: у вас может быть SSL по умолчанию, но если у вас есть новый виртуальный хост с этой проблемой, возможно, вы еще не предоставили конфигурацию SSL, даже если порт открыт. (иначе, упс, я пропустил шаг.)
Иосия

1
Также проверьте и убедитесь, что у вас нет других conf-файлов VirtualHost, прослушивающих порт 443 с неправильными настройками. Один неверный файл может привести к остановке всех сайтов SSL.
Nostalg.io

120

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

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


4
Я использовал, a2enmod sslно забыть по a2ensite default-sslумолчанию vhost conf. Спасибо!
m3nda

Они действительно должны просто default-sslвключить уже в Ubuntu.
BadHorsie

32

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

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

Ура!


1
localhost: 443 загружает plian html, что делать?
ниран

@ niran Я полагаю, это зависит от вашей ОС по умолчанию для <VirtualHost>директивы. Попробуйте найти значение по умолчанию и настроить его соответствующим образом и убедитесь, что SSL включен на этом VirtualHost.
Алекс

1
Была эта проблема с vhost, потому что 000-default.conf имел неиспользуемый раздел: 443 без SSLEngine. Журнал Apache показал это, что AH01916: Init: (myhost.example.com:443) You configured HTTP(80) on the standard HTTPS(443) port!
привело

Моя проблема была в том, что я не запустил "sudo a2ensite default-ssl.conf". Конфликт ssl просто не был в каталоге с включенными сайтами, только в доступных для сайтов.
Json


10

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


2
Звучит глупо, но это
поймало

2
используйте a2ensite, а не ссылку, это правильный путь для большинства систем
AsTeR

1
Также проверьте правило на apache2.conf (Ubuntu): IncludeOptional sites-enabled / *. Conf. Убедитесь, что ваши ссылки заканчиваются на «.conf» или измените это правило, чтобы включить все файлы.
Лепе

1
Я создал конфигурацию сайта с правильным синтаксисом и связал его с сайтами, доступными. Проблема была в том, что имя моей конфигурации не заканчивалось на «.conf», так как оно никогда не загружалось, и я получил ошибку выше. Конфиги в моем случае были загружены с директивой «IncludeOptional sites-enabled / *. Conf», поэтому конфиг также должен иметь имя <Whither> .conf. Тривиально, но не вызывает никаких синтаксических ошибок (в конце концов, никогда не загружается), и раздражает, потому что ls показывал это на сайтах, доступных ...
roland.minner

7

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

Ubuntu 12.04 Desktop с установленным 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!


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

3

Посмотри пожалуйста эту ссылку .

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


2

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

$HTTPD -k $ARGV

чтобы:

$HTTPD -k $ARGV -DSSL

Надеюсь, это кому-нибудь поможет.


1

Моя проблема была из-за НИЗКОГО 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-соединению также ...


1

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


0

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

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


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

0

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

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

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

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


0

Для меня решение состояло в том, что мой клиент не работал правильно ...

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.