使用sslvSSLv23如何判断协商的是哪个TLS/SSL协议?
How to determine which TLS/SSL protocol was negotiated when using sslvSSLv23?
我正在使用 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]
.
那么我如何获得这些信息呢?
具体协商协议在TIdSSLIOHandlerSocketOpenSSL.SSLSocket.Cipher.Version
属性SSL/TLS会话建立后。 OpenSSL 还有一个 SSL_get_version()
函数(Indy 没有使用,但你可以直接调用)。
我正在使用 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]
.
那么我如何获得这些信息呢?
具体协商协议在TIdSSLIOHandlerSocketOpenSSL.SSLSocket.Cipher.Version
属性SSL/TLS会话建立后。 OpenSSL 还有一个 SSL_get_version()
函数(Indy 没有使用,但你可以直接调用)。