我正在使用ssl3
连接到服务器。使用-change_session_version
指定-reconnect
选项时,我希望会话协议从SSLv2
更改为SSLv3
这是我的命令:apps/openssl s_client -connect 10.102.113.3:443 -reconnect -change_session_version -ssl3
现在,我知道我应该有这个代码:
if(change_session_version)
s->session->ssl_version = SSL2_VERSION;
或者这段代码:
if(change_session_version)
s->version = SSL2_VERSION;
我不知道在哪里放这个代码。
我已在change_session_version
中将int
声明为ssl.h
,并且如果指定了1
选项,则将其设置为-change_session_version
。
请帮帮我!
答案 0 :(得分:1)
我不认为这是可能的。首先,SSLv2实际上不再受支持,并且大多数堆栈甚至不实现它,而其他堆栈已禁用它。然后根本不支持SSLv2中的会话恢复。
答案 1 :(得分:1)
你的问题体现了矛盾。 SSL中的“会话”包括协议,密码套件,密钥材料和对等证书。如果不创建新会话,则无法更改其中任何一个。
编辑只更改一个本地内存中的变量不可能实现任何有用的功能。对等方不会知道它,并且在其他连接上共享会话的其他对等方也不会知道它。您必须重新握手并协商新会话。