Я установил самозаверяющий SSL-сертификат для веб-сайта, который я запускаю на localhost. Кажется, что данные, поступающие в браузер, являются полными и правильными как для версий SSL, так и для версий без SSL, но я получаю много сообщений об ошибках apache, которые, кажется, указывают на обратное.
Когда я нажимаю кнопку "Обновить", я сразу получаю в журнале пару таких строк.
AH01964: Connection to child 0 established
Также дочерние элементы 2, 6, 4 и т. Д. Могут появляться в произвольном порядке.
В течение следующих нескольких секунд я получаю несколько таких
(70014)End of file found: [client 127.0.0.1:32839] AH01991: SSL input filter read failed.
[client 127.0.0.1:32840] AH01382: Request header read timeout
Я предполагаю, что множественность этих строк связана со скриптами, css и т. Д., Потому что если я перейду в «Просмотр исходного кода» и обновлю который окно, я получаю одно из этих
AH01964: Connection to child 4 established
...и ничего больше. Все это происходит только для https-соединений. Журнал http молчит.
Что-нибудь фактически неправильно? Я повторяю, кажется, что контент обслуживается полностью и правильно, что, кажется, противоречит формулировкам в журнале «ошибка чтения» и «тайм-аут». Эти ошибки просто шум или мне нужно что-то исправить?
Если это просто безобидный шум, как мне их выключить?
Вот как я все настроил. (Я получил этот процесс по частям из различных руководств, не понимая его полностью.)
В / etc / hosts у меня есть
127.0.0.1 x.com
Я создал самоподписанный сертификат ssl с помощью следующего скрипта
openssl genrsa -des3 -out x.com.key 2048
openssl req -new -key x.com.key -out x.com.csr
cp x.com.key x.com.key.org
openssl rsa -in x.com.key.org -out x.com.key
openssl x509 -req -days 3650 -in x.com.csr -signkey x.com.key -out x.com.crt
chmod 400 x.com.{key,crt,csr}
sudo chown www-data x.com.{key,crt,csr}
sudo mv x.com.{key,crt,csr} /path/to/website/
Во время этого процесса я ввожу
Common Name (e.g. server FQDN or YOUR name) []:x.com
У меня есть как <VirtualHost x.com:80>
и <VirtualHost x.com:443>
настраивается в sites-enabled / 000-default.conf, и разница между ними заключается в следующем разделе:
SSLEngine on
SSLCertificateFile /path/to/website/x.com.crt
SSLCertificateKeyFile /path/to/website/x.com.key
SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
CustomLog ${APACHE_LOG_DIR}/x.com.ssl.log "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
И вот что у них общего:
LogLevel info
Как уже говорили другие, эти сообщения регистрируются, потому что ваш LogLevel
установлен на info
. Если вам не нужны эти конкретные сообщения, но вы все равно хотите info
журналы уровня, вы можете перенастроить это в конфигурации apache:
LogLevel info ssl:warn
Этот вопрос выглядит так же, как вот этот, который, очевидно, я обнаружил при диагностике того же самого.
Проблема вызвана установкой VirtualHost вместо IP-адреса на основе имени (или группового символа). Проблема в том, что доменное имя передается на веб-сервер только после того, как соединение установлено, и на этом этапе соединение SSL / TLS уже должно быть активным, поэтому серверу необходимо выбрать правильный ключ SSL на основе минимально доступной информации и это IP-адрес этого виртуального хоста.
Более подробная информация и примерная информация о конфигурации приведены на Веб-сайт Apache, но в основном вы хотите изменить <VirtualHost x.com:443>
к <VirtualHost 1.2.3.4:443>
где это использует IP-адрес для этого хоста / интерфейса.
LogLevel info
скорее всего, причина, и он определенно выглядит как безобидный шум.
Любая конкретная причина, по которой вам нужно, чтобы ведение журнала было таким подробным, или вы можете вернуть его к чему-то вроде notice
или warn
?
Проверьте свои конфигурации в системе контроля версий: rcs http://pages.cs.wisc.edu/~plonka/sysadmin/article.html
cd / etc /
rcs -ci * .cnf,config,.conf