[ Content | View menu ]

Проблема «SSL input filter read failed» и её решение

Опубликовано 06.09.2010

Потратил половину своих выходных на выяснение причин неработоспособности прикрученного мной к одному апачу 2.2.16 модуля mod_ssl. Скрипт, вроде бы нормально работающий на 80 порту, напрочь отказывался работать через https, при этом выдавалась пустая страница, а в логах при перезапуске апача появлялась строчка, свидетельствующая лишь о том, что используется самоподписанный сертификат:

[warn] RSA server certificate is a CA certificate (BasicConstraints: CA == TRUE !?)

Включив подробные логи (LogLevel debug), получил для каждого запроса на пару порядков больше информации, из которой наиболее полезным оказалось вот это:

[Sat Sep 04 20:43:54 2010] [debug] ssl_engine_io.c(1893): OpenSSL: I/O error,
5 bytes expected to read on BIO#8074a22e0 [mem: 8074e5000]
[Sat Sep 04 20:43:54 2010] [info] [client XX.XX.XX.XX] (70007)The timeout
specified has expired: SSL input filter read failed.

Безрезультатно промаявшись с этим еще пару часов, отправился спать с мыслью поставить потом nginx в качестве SSL-прокси.

В понедельник программисты посоветовали обратить внимание на .htaccess, в котором, в частности, активно эксплуатировался mod_rewrite и устанавливались настройки php. Временное удаление .htaccess вызвало ошибку 403 по нужному адресу (это был отличный результат, поскольку ранее никаких ошибок не выдавалось вообще). А отключение php_value error_reporting 0, приведшее к заполнению экрана ошибками PHP, окончательно развеяло все сомнения: проблема была вовсе не в mod_ssl, а в пользовательском скрипте; mod_ssl ничего не получал и возвращал ошибку.

Мораль на будущее: надо быть проще и искать корни очевидных ошибок на поверхности, а nginx все равно не помешает.

Note for english-speaking visitors with the same error from google: try to check your php scripts or other backends, they can fail and not return any data to mod_ssl

«
»

0 комментариев

Write a comment - TrackBack - RSS Comments

Write comment

Я не робот.