特定设备上的旧版(约 15 年)浏览器必须能够访问给定的 Apache 网站。这就是为什么作为最后的手段,我不得不完全放弃加密。但我仍然希望尽可能地确保其安全。
一个尝试是允许弱密码。但是 Apache 文档说(https://httpd.apache.org/docs/current/mod/mod_ssl.html):
从 2.4.7 版本开始,空密码和出口级密码始终被禁用,因为 mod_ssl 在初始化时无条件地将 !aNULL:!eNULL:!EXP 添加到任何密码字符串中。
(https://www.google.com/但确实支持旧密码并可在旧浏览器中加载。)
因此,似乎我无法使用 Apache 为旧浏览器提供任何 SSL。我的下一个尝试是将所有支持 SSL 的客户端自动从 http:// 变体重定向到 https://,但将不支持 SSL 的客户端留在未加密的站点上。但我找不到管理它的方法。
因此,我目前最好的解决方案是让用户自由决定是否访问加密或非加密版本的网站,而无需重定向。我不喜欢这个想法,因为在我看来,每个拥有像样的浏览器的用户都应该使用 SSL,从而自动从 http 重定向到 https。
还有更好的可能性吗?
答案1
在网站的 VirtualHost 中创建一个 http vhost。使用 httpd -S 可以看到所有 vhost。
您还可以将旧密码添加到 vhost 的 SSL 块中,以下是允许密码套件的配置示例
SSL密码套件ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-A ES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS