“SSL 输入过滤器读取失败”Apache 和 443

use*_*440 20 ssl https apache-2.2

我的 apache conf 有点问题。当我阅读错误日志时,我可以看到以下内容:

[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.
Run Code Online (Sandbox Code Playgroud)

有时,这个:

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

我实际上不知道......所以我的网站是完整的 HTTP,除了 HTTPS 中的两个页面。所以这是我的虚拟主机:

<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>
Run Code Online (Sandbox Code Playgroud)

那么,我在哪里做错了?我找不到……你能帮帮我吗?

谢谢 :)

use*_*440 10

我读到 Apache 在基于名称的虚拟主机上不支持 SSL,仅在基于 IP 的虚拟主机上支持。所以我改变了它:

 <VirtualHost *:443>
Run Code Online (Sandbox Code Playgroud)

经过:

 <VirtualHost 192.168.1.1:443>
Run Code Online (Sandbox Code Playgroud)

目前,它似乎有效,我不知道这是否是好的解决方案,但我没有任何错误......

  • 此解决方案未解决 apache-2.4 中的相同问题:( (11认同)
  • Apache 应该在使用相同 IP 的多个 VirtualHosts 上支持 SSL,“使用 2.2.12 或更高版本的 Web 服务器,使用 0.9.8j 或更高版本的 OpenSSL 构建”,客户端比 IE8/WinXP 更新。这称为 SNI。[这里]有讨论(http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#vhosts2)。我让它工作了,但是这些讨厌的日志消息无处不在! (2认同)