我正在使用tidssliohandlersocketopenssl打开TLS/SSL连接。我目前想支持TLS 1.0至1.2。
我这样初始化了iohandler。
TIdSSLIOHandlerSocketOpenSSL(FSocket.IOHandler).SSLOptions.SSLVersions := [sslvTLSv1_2,sslvTLSv1_1, sslvTLSv1];
建立连接后,如何获得有关连接的哪个协议?(既要确保客户端和测试服务器的配置都是正确的,最终出于统计目的)。
我在连接后检查了SSLContext.Method
,但在连接后仍显示sslvSSLv23
。SSLContext.SSLVersions
显示[sslvTLSv1_2,sslvTLSv1_1, sslvTLSv1]
。
那么我如何获取这些信息?
建立了SSL/TLS会话后,特定的协商协议位于TIdSSLIOHandlerSocketOpenSSL.SSLSocket.Cipher.Version
属性中。OpenSSL还具有SSL_get_version()
功能(Indy不使用它,但您可以直接调用)。