我们正在更新我们的 nginx 配置以删除一些旧的/不太安全的密码套件。
对于绝大多数情况,这不会导致任何问题,但是,旧版本的 Windows(以及非常早期的 Windows 10 版本)将无法协商连接,因为没有共同的密码套件。
我们采用“默认安全”的方法,但如果更改导致他们出现问题,则允许用户降级其部署的安全性。
我的问题是...
如果 SSL 协商失败,我可以让 nginx 重定向到错误页面吗?
[大概是通过 HTTP,尽管我可以忍受运行不同的、不安全的服务器/配置来提供单个错误文件]
我注意到 CloudFlare 已采用 HTTP 525 来指示“SSL 协商失败”,但在他们的情况下,它们是 2 跳,因此报告他们自己的下游连接失败,而不是处理连接到 cloudflare 本身的失败,所以我可以没有看到任何简单的方法来利用它(加上它是非标准的)。
简短的回答 - 不。
重定向是 HTTP 的事情。这发生在 SSL/TLS 协商成功完成之后。
如果您在 ssl_ciphers 中包含不安全的密码(确保您设置它以便首选强密码 - 即列表中的第一个),那么您的旧客户端仍然能够连接并且您的网络服务器将能够与他们交谈。从那时起,可以根据$ssl_cypher定义不同的行为
排长队的东西(NB未测试)