使用SSLVSSLV23时,如何确定哪些TLS/SSL协议进行协商



我正在使用tidssliohandlersocketopenssl打开TLS/SSL连接。我目前想支持TLS 1.0至1.2。

我这样初始化了iohandler。

TIdSSLIOHandlerSocketOpenSSL(FSocket.IOHandler).SSLOptions.SSLVersions := [sslvTLSv1_2,sslvTLSv1_1, sslvTLSv1];

建立连接后,如何获得有关连接的哪个协议?(既要确保客户端和测试服务器的配置都是正确的,最终出于统计目的)。

我在连接后检查了SSLContext.Method,但在连接后仍显示sslvSSLv23SSLContext.SSLVersions显示[sslvTLSv1_2,sslvTLSv1_1, sslvTLSv1]

那么我如何获取这些信息?

建立了SSL/TLS会话后,特定的协商协议位于TIdSSLIOHandlerSocketOpenSSL.SSLSocket.Cipher.Version属性中。OpenSSL还具有SSL_get_version()功能(Indy不使用它,但您可以直接调用)。

最新更新