ssl_error_rx_record_too_long и Apache SSL

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

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

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

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

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

РЕШЕНИЕ

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

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


person Subimage    schedule 23.09.2008    source источник
comment
Я думаю, что это также может быть вызвано неправильно настроенным прокси-сервером на их стороне. Есть мысли и по этому поводу?   -  person Subimage    schedule 23.09.2008
comment
Поскольку он был закрыт как не по теме, но, похоже, это очень ценный вопрос (очень высокий рейтинг в Google для этого сообщения об ошибке), возможно, его следует переместить в ServerFault? Это вопрос 6-летней давности, поэтому, возможно, SF не был доступен, когда вопрос был задан изначально...   -  person kdmurray    schedule 01.09.2014
comment
Интересно, что для одного и того же сообщения об ошибке есть более 5 решений, все разные. Странно, что мы все получаем загадочный и бесполезный record_too_long по разным причинам!   -  person Demis    schedule 10.08.2017
comment
Это первый результат веб-поиска для SSL_ERROR_RX_RECORD_TOO_LONG. У него 32 фаворита, 193 голоса, несколько ответов, получивших большое количество голосов ... и он закрыт как не по теме, по словам человека, который лучше всех нас знает, что этот вопрос не имеет права на существование.   -  person Vladimir Kornea    schedule 21.10.2017
comment
Я мог бы отладить проблемы с сертификатом, создав это сообщение, с помощью openssl s_client -connect my-domain.tld:443   -  person azmeuk    schedule 22.11.2017
comment
У меня недостаточно представителей, но те, у кого они есть, проголосуйте за повторное открытие вопроса!   -  person dr_    schedule 02.07.2018
comment
Я нашел один сайт, который не разрешал загрузку из-за этой ошибки — отключение надстройки HTTP Everywhere было (временным) решением.   -  person Jool    schedule 12.12.2018
comment
@Subimage РЕШЕНИЕ Оказывается, у клиента неправильно настроен локальный прокси! Пожалуйста, объясните, что это значит. Вы могли бы быть более конкретным; неприятно осознавать, что у тебя есть решение, но ты не объясняешь его явно   -  person ptrcao    schedule 22.12.2018
comment
Я потерял ключевое слово ssl после порта: server { listen 443 ssl;   -  person Daneel Yaitskov    schedule 11.12.2020
comment
я проголосовал за повторное открытие, возможно, следует обсудить мета, чтобы рассмотреть возможность повторного открытия вопросов с более чем 100 тыс. просмотров (или какой-либо другой достаточно высокой ценностью просмотров)   -  person Wolfgang Fahl    schedule 28.12.2020


Ответы (15)


ссылка, упомянутая 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, проверьте конфигурацию виртуального хоста. Некоторые пользователи сообщают, что изменение <VirtualHost> на _default_ устранило ошибку.

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

Помимо вышеперечисленного, вот некоторые другие решения, которые, по мнению других пользователей, вызывали проблему:

  • Убедитесь, что срок действия вашего SSL-сертификата не истек

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

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

person Randall    schedule 21.01.2011
comment
Просто чтобы добавить в список вещей, которые нужно проверить, после проверки всех этих элементов мне пришлось поменять свой ‹VirtualHost default: 443› на ‹VirtualHost fqdn: 443›, чтобы заставить его наконец работать. - person JimP; 31.05.2011
comment
У меня была эта проблема на сервере whm/Cpanel. Я только что переустановил ssl, чтобы решить проблему. - person Mike D; 22.11.2011
comment
_default_:443 работал на меня. Нет, я могу пойти спать! - person Garfonzo; 31.01.2012
comment
Еще одна вещь, которую нужно проверить, у вас может быть SSL по умолчанию, но если у вас есть новый виртуальный хост с этой проблемой, возможно, вы еще не предоставили конфигурацию SSL, даже если порт открыт. (ака, ой, я пропустил шаг.) - person Josiah; 28.10.2013
comment
То же самое. по умолчанию:443 у меня сработало. - person miCRoSCoPiC_eaRthLinG; 21.01.2014
comment
Просто изменение ports.conf меня устроило. - person Zayne S Halsall; 16.06.2014
comment
Для работы SSL вы должны сопоставить виртуальный хост по IP-адресу, а не по имени. - person Eugen Konkov; 25.05.2015
comment
@Randall: Это может показаться глупым, но также убедитесь, что ваш [website_domain].conf прочитан Apache. (запишите мусор в if и убедитесь, что apache жалуется при запуске). У меня была эта ошибка только потому, что я забыл .conf в конце символической ссылки. Поэтому Apache не использовал conf и отправлял обычный HTML (страницу с ошибкой) вместо того, чтобы требовать SSL-аутентификацию. - person bokan; 11.09.2015
comment
Кроме того, проверьте и убедитесь, что у вас нет других файлов конфигурации VirtualHost, прослушивающих порт 443 с неправильными настройками. Один плохой файл конфигурации может вывести из строя все сайты SSL. - person Nostalg.io; 02.12.2015
comment
пришлось использовать _default_:443, чтобы исправить это, так как DNS-имя содержало как IPv4, так и IPv6-адреса, поэтому просто 192.168.66.99:443 было недостаточно! - person Matija Nalis; 01.04.2016
comment
В [apacheroot]/conf/extra/httpd-ssl.conf мне пришлось исправить строку: ‹VirtualHost default:443› на правильный SSL-порт, который я использовал. - person Jan; 14.07.2016
comment
Указание IP-адреса в записи vhost вместо * сработало для меня - person Steven H; 03.03.2017
comment
Установка VirtualHost на по умолчанию, а не на IP-адрес, сработала для меня. - person Christopher Will; 29.03.2017
comment
В моем случае порядок выполнения файлов conf был неправильным. Виртуальный хост по умолчанию должен выполнить 1-й, а затем пользовательские - person Monish Sen; 12.07.2019

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

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

person Webnet    schedule 30.03.2010
comment
Я использовал a2enmod ssl, но забыл a2ensite default-ssl из конфигурации vhost по умолчанию. Спасибо! - person m3nda; 24.05.2015
comment
Они действительно должны просто включить default-ssl уже в Ubuntu. - person BadHorsie; 05.03.2016

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

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

Ваше здоровье!

person alexm    schedule 20.05.2009
comment
localhost:443 загружает обычный html, что делать? - person niran; 19.11.2016
comment
@niran Я думаю, это зависит от настроек вашей ОС по умолчанию для директивы <VirtualHost>. Попробуйте узнать значение по умолчанию и настроить его соответствующим образом, а также убедитесь, что SSL включен на этом виртуальном хосте. - person alexm; 31.05.2017
comment
Была эта проблема с vhost, потому что 000-default.conf имел неиспользуемый раздел: 443 без SSLEngine. Журнал Apache показал это, что навело меня на правильный путь: AH01916: Init: (myhost.example.com:443) You configured HTTP(80) on the standard HTTPS(443) port! - person mivk; 23.07.2017
comment
Моя проблема заключалась в том, что я не запускал sudo a2ensite default-ssl.conf. Конфигурации ssl просто не было в каталоге с поддержкой сайтов, а только в доступных сайтах. - person Json; 28.05.2018

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

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

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

person Christian Davén    schedule 12.05.2009
comment
да, это исправит для wamp 3.2/apache 2.4.46. Спасибо - person Matteus Barbosa; 12.03.2021

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

person drillingman    schedule 18.11.2010
comment
Звучит глупо, но меня зацепило - person Alexei Tenitski; 09.08.2012
comment
используйте a2ensite, а не ссылку, это правильный путь для большинства систем - person AsTeR; 30.04.2013
comment
Кроме того, проверьте правило в apache2.conf (Ubuntu): IncludeOptional sites-enabled/*.conf . Убедитесь, что ваши ссылки заканчиваются на .conf или измените это правило, чтобы включить все файлы. - person lepe; 04.08.2015
comment
я создал конфигурацию сайта с правильным синтаксисом и связал ее с доступными сайтами. Проблема заключалась в следующем: имя моей конфигурации не заканчивалось на .conf, поэтому она никогда не загружалась, и я получил указанную выше ошибку. Конфиги в моем случае были загружены с директивой IncludeOptional sites-enabled/*.conf поэтому конфиг тоже должен называться ‹Whatever›.conf. Тривиально, но не вызывает синтаксической ошибки (в конце концов, никогда не загружается) и раздражает, потому что ls показал это на доступных сайтах... - person roland.minner; 31.10.2015

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

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, поэтому ваши результаты могут отличаться для внешнего доступа, но это сработало для меня.

person Tarka    schedule 16.04.2012
comment
Команды «a2ensite default-ssl» и «a2enmodule ssl» упрощают управление символическими ссылками модулей и сайтов. - person Josiah; 28.10.2013

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

person fimbulvetr    schedule 14.07.2011
comment
Я могу подтвердить, что это было проблемой и для меня... неправильный IP-адрес - person StanleyD; 09.03.2015

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

person dan-manges    schedule 23.09.2008
comment
Я видел скриншот, но это не так :80 Попробуйте сами: monkeyfood.cashboardapp.com - person Subimage; 23.09.2008

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

$HTTPD -k $ARGV

to:

$HTTPD -k $ARGV -DSSL

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

person Community    schedule 01.12.2008

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

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

person rogovsky    schedule 30.07.2010

Моя проблема была из-за НИЗКОГО 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

Исправлено: netsh interface ipv4 set interface "Wireless Network Connection" mtu=1400

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

person Community    schedule 21.05.2009

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

person Community    schedule 30.06.2009

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

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

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

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

person Lily B    schedule 16.07.2012

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

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

person Pierre-Gilles Levallois    schedule 09.09.2009
comment
Некоторые прокси-серверы возвращают ответ об ошибке HTTP на запрос HTTPS, которого они не ожидают (например, если вы использовали неправильный прокси-сервер или прокси-сервер неправильно настроен). Это может быть очень сложно диагностировать, потому что браузеры просто отклонят весь диалог и выдадут ошибку, вместо того, чтобы показать вам сообщение об ошибке прокси-сервера. Однако Wireshark делает свою работу. Просто столкнулся с этим сам. - person Lightness Races in Orbit; 04.05.2018

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

person Anon    schedule 26.09.2012