„Błąd odczytu filtra wejściowego SSL” Apache i 443

17

Mam mały problem z konf. Apache. Kiedy czytam dziennik błędów, oto co widzę:

[client xxx.xxx.xx.xx] AH01964: Connection to child 1 established (server www.mywebsite.com:443)
[client xxx.xxx.xx.xx] AH01964: Connection to child 6 established (server www.mywebsite.com:443)
[client xxx.xxx.xx.xx] AH01964: Connection to child 10 established (server www.mywebsite.com:443)
[client xxx.xxx.xx.xx] AH01964: Connection to child 15 established (server www.mywebsite.com:443)
[client xxx.xxx.xx.xx] AH01964: Connection to child 18 established (server www.mywebsite.com:443)
(70014)End of file found: [client xxx.xxx.xx.xx] AH01991: SSL input filter read failed.
(70014)End of file found: [client xxx.xxx.xx.xx] AH01991: SSL input filter read failed.
(70014)End of file found: [client xxx.xxx.xx.xx] AH01991: SSL input filter read failed.
(70014)End of file found: [client xxx.xxx.xx.xx] AH01991: SSL input filter read failed.
(70014)End of file found: [client xxx.xxx.xx.xx] AH01991: SSL input filter read failed.

A czasami ten:

 (70007)The timeout specified has expired: [client xxx.xxx.xx.xx] AH01991: SSL input filter read failed.

Właściwie to nie wiem ... więc moja strona ma pełny HTTP, z wyjątkiem dwóch stron w HTTPS. Oto mój virtualHost:

<VirtualHost *:80>
    ServerName mywebsite.com
    Redirect permanent / http://www.mywebsite.com/
</VirtualHost>
<VirtualHost *:80>
    ServerName www.mywebsite.com
    ServerAlias img.mywebsite.com
    ServerAdmin xxx
    DocumentRoot /home/mywebsite/www/public
    <Directory /home/mywebsite/www/>
        Options Indexes Multiviews FollowSymlinks
        AllowOverride All
        Require all granted
        ErrorDocument 403 http://www.google.com/
    </Directory>
    <Directory /home/mywebsite/www/public/resource/private/>
        Require all denied
        ErrorDocument 403 http://www.mywebsite.com/
    </Directory>
    <Location "/robots.txt">
            Require all granted
    </Location>

    LogLevel info
    ErrorLog ${APACHE_LOG_DIR}/mywebsite_error.log
    CustomLog ${APACHE_LOG_DIR}/mywebsite_access.log combined
</VirtualHost>
<IfModule mod_ssl.c>
    <VirtualHost *:443>
        ServerName www.mywebsite.com
        DocumentRoot /home/mywebsite/www/public
            <Directory /home/mywebsite/www/>
                Options Indexes FollowSymlinks Multiviews
                AllowOverride all
                Require all granted
            </Directory>
        LogLevel info
        ErrorLog ${APACHE_LOG_DIR}/mywebsite_error.log
        CustomLog ${APACHE_LOG_DIR}/mywebsite_access.log combined

        SSLEngine on
        SSLCertificateFile ./mywebsite.crt
        SSLCertificateKeyFile ./mywebsite.key
        SSLCertificateChainFile ./intermediate.crt
    </VirtualHost>
</IfModule>

Więc gdzie popełniłem błąd? Nie mogę się tego dowiedzieć ... Czy możesz mi pomóc?

dziękuję :)

użytkownik3013440
źródło
Mam ten sam problem w Apache 2.4.7. To nie jest kwestia wsparcia SNI. Nie jest też „tylko obniżeniem poziomu dziennika” :)
Iguananaut

Odpowiedzi:

10

Czytam, że Apache nie obsługuje SSL na wirtualnym hoście opartym na nazwie, tylko na wirtualnych hostach opartych na IP. Więc zmieniłem to:

 <VirtualHost *:443>

przez:

 <VirtualHost 192.168.1.1:443>

Na razie wydaje się, że działa, nie wiem, czy to dobre rozwiązanie, ale nie mam żadnego błędu ...

użytkownik3013440
źródło
1
Rzeczywiście, zalecenia Apache i przykładowa konfiguracja są tutaj .
Ben,
10
Ten sam problem w Apache-2.4 nie został rozwiązany przez to rozwiązanie :(
mircealungu
Może być konieczne dodanie wielu adresów IP, jeśli masz więcej niż jedną nazwę hosta, którą próbujesz podać przez SSL.
szybka zmiana w dniu
1
Apache ma obsługiwać SSL na wielu VirtualHostach korzystających z tego samego adresu IP „przy użyciu serwera WWW w wersji 2.2.12 lub nowszej, zbudowanej z OpenSSL w wersji 0.9.8j lub nowszej” z klientami nowszymi niż IE8 / WinXP. Nazywa się to SNI. Jest dyskusja tutaj . Mam to działa, ale te nieznośne komunikaty dziennika są wszędzie!
częściowo
To nie działa dla mnie.
QkiZ
2

Kolejnym wymaganiem jest dodanie następującego wiersza na końcu bloków dyrektyw 44H portu SSL VirtualHost

SetEnv nokeepalive ssl-unclean-shutdown

Jak stwierdzono tutaj :

negamips
źródło
2
To kiepska rada. Dodanie nokeepalivedo konfiguracji serwera może poważnie obniżyć wydajność i jest potrzebne tylko w przypadku starszych wersji MSIE. Zobacz blogs.msdn.microsoft.com/ieinternals/2011/03/26/…
Iguananaut
0

dla mnie absurdalnie proste rozwiązanie tego błędu w następujący sposób (ten błąd pojawia się po dodaniu plików / folderów jako root):

chown www-data: /var/www -R
chmod 755 /var/www -R
Janos Szabo
źródło