我有一个问题在不同的问题中出现过,但我仍然找不到解决方案。
我的问题是,我在 Debian 上的 Apache 2.4 上托管了一个网站,使用 SSL,Windows XP 上的 Internet Explorer 7 显示
Internet Explorer cannot display the webpage
我只有一个使用 SSL 的虚拟主机,但有多个使用 http 的虚拟主机。这是我启用 SSL 的网站配置(etc/sites-avaible/default-ssl 未链接)
<Virtualhost xx.yyy.86.193:443>
ServerName www.my-certified-domain.de
ServerAlias my-certified-domain.de
DocumentRoot "/var/local/www/my-certified-domain.de/current/www"
Alias /files "/var/local/www/my-certified-domain.de/current/files"
CustomLog /var/log/apache2/access.my-certified-domain.de.log combined
<Directory "/var/local/www/my-certified-domain.de/current/www">
AllowOverride All
</Directory>
SSLEngine on
SSLCertificateFile /etc/ssl/certs/www.my-certified-domain.de.crt
SSLCertificateKeyFile /etc/ssl/private/www.my-certified-domain.de.key
SSLCipherSuite HIGH:MEDIUM:!aNULL:+SHA1:+MD5:+HIGH:+MEDIUM
SSLCertificateChainFile /etc/apache2/ssl.crt/www.my-certified-domain.de.ca
BrowserMatch "MSIE [2-8]" nokeepalive downgrade-1.0 force-response-1.0
</VirtualHost>
<VirtualHost *:80>
ServerName www.my-certified-domain.de
ServerAlias my-certified-domain.de
CustomLog /var/log/apache2/access.my-certified-domain.de.log combined
Redirect permanent / https://www.my-certified-domain.de/
</VirtualHost>
我的 ports.conf 如下所示:
NameVirtualHost *:80
Listen 80
<IfModule mod_ssl.c>
# If you add NameVirtualHost *:443 here, you will also have to change
# the VirtualHost statement in /etc/apache2/sites-available/default-ssl
# to <VirtualHost *:443>
# Server Name Indication for SSL named virtual hosts is currently not
# supported by MSIE on Windows XP.
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
</IfModule>
输出apache2ctl -S
如下:
xx.yyy.86.193:443 www.my-certified-domain.de (/etc/apache2/sites-enabled/020-my-certified-domain.de:1)
wildcard NameVirtualHosts and _default_ servers:
*:80 is a NameVirtualHost
default server phpmyadmin.my-certified-domain.de (/etc/apache2/conf.d/phpmyadmin.conf:3)
port 80 namevhost phpmyadmin.my-certified-domain.de (/etc/apache2/conf.d/phpmyadmin.conf:3)
port 80 namevhost staging.my-certified-domain.de (/etc/apache2/sites-enabled/010-staging.my-certified-domain.de:1)
port 80 namevhost testing.my-certified-domain.de (/etc/apache2/sites-enabled/015-testing.my-certified-domain.de:1)
port 80 namevhost www.my-certified-domain.de (/etc/apache2/sites-enabled/020-my-certified-domain.de:31)
我提供了这个问题的解决方案: Internet Explorer 无法显示该页面,其他浏览器可以,可能是 htaccess/服务器错误
我从这个问题中明白了答案:
如何在 SSL 上设置 Apache NameVirtualHost?
事实上:我只有一个域名的 SSL 证书。而且我只想运行一个带有 SSL 的虚拟主机。所以我只想为 SSL 虚拟主机使用一个 IP。但仍然(重新启动/重启/测试后)Internet Explorer 仍不会显示该页面。
当我解释 apachectl -S 时,我已经只有一个 SSL 主机,这应该响应初始 SSH 握手,不是吗?
这个设置有什么问题?
非常感谢菲利普
更新:适用于所有其他浏览器。我使用 wireshark 进行了调试,服务器发送警报通知连接已关闭。但我在日志中看不到问题
答案1
它可以在其他浏览器上运行吗,例如 WinXP 上的 Firefox、Vista/7/8 上的 IE7、IE8+、iOS、Android?
如果是,则怀疑您的密码套件可能过于严格/过于现代,无法允许 IE7/XP。要么强制您的用户群升级其浏览器/操作系统,要么重新配置您的 SSLCipherSuite:
看https://github.com/client9/sslassert/wiki/IE-Supported-Cipher-Suites
另请参阅此可能的 WinXP 错误/KB 修复程序:http://support.microsoft.com/kb/2541763/en-us
也许可以尝试:
SSLCipherSuite ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4
(以上内容来自https://raymii.org/s/tutorials/Strong_SSL_Security_On_Apache2.html)