我们正在更新我们的 nginx 配置以删除一些较旧/不太安全的密码套件。
对于绝大多数情况来说,这不会造成任何问题,但是,旧版本的 Windows(以及 Windows 10 的早期版本)将无法协商连接,因为没有通用的密码套件。
我们采用“默认安全”的方法,但如果更改导致问题,我们将允许用户降低其部署的安全性。
我的问题是......
如果 SSL 协商失败,我可以让 nginx 重定向到错误页面吗?
[大概是通过 HTTP,尽管我可以运行一个不同的、不安全的服务器/配置来提供单个错误文件]
我注意到 CloudFlare 已采用 HTTP 525 来指示“SSL 协商失败”,但在他们的情况下,他们是 2 跳,因此报告他们自己无法连接下游,而不是处理无法连接到 cloudflare 本身的故障,所以我看不出有任何简单的方法来利用这一点(而且它是非标准的)。
答案1
简短的回答 - 不。
重定向是 HTTP 的事情。这发生在 SSL/TLS 协商成功完成后。
如果您在 ssl_ciphers 中包含不安全的密码(请确保您将其设置为优先使用强密码 - 即列表中的第一个),那么您的旧客户端仍然能够连接,并且您的网络服务器将能够与他们通信。从那时开始可能可以定义基于不同的行为$ssl_cypher
类似的东西(NB,未经测试)
if ($ssl_cipher = "DES-CBC3-SHA" ) {
rewrite (.*) https://insecure.com$1;
}