我想向浏览器的最高加密级别为 SSLv3 的客户显示一条消息。我可以针对 SSLv3 及更低版本的浏览器设置吗?客户端或服务器代码?我们将允许较低版本的 SSL 在一定的宽限期内使用我们的网站。在此宽限期内,我们希望仅向浏览器设置为 SSL3 或更低版本的用户显示一条消息。
最佳答案
不容易。在 SSL 握手进行之前,无法检测到浏览器支持的 SSL 版本,即使在浏览器使用 SSLv2 握手以允许动态版本协商时也是如此。如果检测到不受支持的版本,您将无法发回消息,因为握手失败并且连接将在您发送任何消息之前关闭。但是,SSL 本身有一个在握手期间发送的错误数据包,它可以指定版本不匹配错误。
在你自己的代码中你能做的最好的是在服务器端支持所有的SSL版本,让客户端正常完成一次握手,然后检测实际使用的是哪个版本,如果SSL版本太低则发回消息.
或者,您可以只启用 TLSv1 或更高版本,而根本拒绝让旧客户端连接。除非浏览器决定检测 SSL 版本不匹配错误并显示它自己的漂亮消息,否则他们不会收到好的错误消息。
关于ssl - 我可以检测浏览器支持的 SSL 版本吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24896708/