从服务器获取支持的TLS版本

问题描述:

我有一个应用程序,我要在其中设置TLS版本,但它将取决于服务器。我想设置服务器支持的TLS版本,对于不同的服务器可能会有所不同,因此有没有任何API和方法可以在java或android中获得任何服务器支持的TLS版本?从服务器获取支持的TLS版本

我很感谢这里的任何帮助。

没有必要知道服务器支持哪个版本。 在SSL/TLS中,客户端将启动宣布其愿意支持的最高版本的握手,并且服务器将仅以其可以执行的最佳版本和不高于客户端版本的应答进行回复。

你需要这些知识的唯一方法是如果你正在处理一个破碎的服务器,它不能正确处理未知的版本。在这种情况下,浏览器会以较低的版本重试(即使用TLS 1.0而不是TLS 1.2重试),希望这可以起作用。如果这能奏效,他们会记得服务器已损坏,需要使用较低版本进行处理以便将来连接。但是这种回退主要是在浏览器内完成的,其他应用程序只是放弃了破碎的服务器。

+1

我需要在android应用程序中这样做,所以你可以让我一块代码,我可以用它来获取服务器给出的版本,并设置在客户端。 –

+0

@ user499:就像我说的:“没有必要知道服务器支持哪个版本”。 Android也是如此。 –

+0

Android支持基于API版本的不同TLS版本,以便客户端将在握手中使用哪个版本,或者我可以在客户端应用程序的Android API版本的基础上手动设置版本。 –