我用c++发post请求到服务器,有两台服务器,一台是apache可以联通,一台是f5无法联通。后来知道了是f5那一台有一个过滤条件,!LOW:!SSLv3:!MD5:!RC4-SHA:!EXPORT:!DHE:!DES:!DES-CBC3-SHA:ECDHE+AES-GCM:DHE+AES-GCM:ECDHE+AES:!ECDHE-RSA-DES-CBC3-SHA:DHE+AES:AES-GCM+RSA:RSA+AES:RSA+3DES:@SPEED 。!是禁止的意思。我要怎么改?有大神知道吗?菜鸟我折腾一周了,还没搞定。
我是用c++的openssl-0.9.8e ;xerces-c-src_2_8_0; xml-security-c-1.4.0
//首先是 用ip和端口建立socket连接;
//然后代码如下:
SSL_CTX_new(TLSv1_client_method());
m_Socket.ssl = SSL_new(m_Socket.ctx);
//ret=SSL_CTX_set_cipher_list(m_Socket.ctx,"RSA+3DES");
connect(m_Socket.sock,(sockaddr*)&(m_szWtParam.addr),sizeof(m_szWtParam.addr));
ret=SSL_set_fd(m_Socket.ssl, m_Socket.sock);
ret=SSL_connect(m_Socket.ssl);
fd_set sock_set;
FD_ZERO(&sock_set);
FD_SET(m_Socket.ssl, &sock_set);
select_ret = ::select(0, NULL, &sock_set, NULL, &timeout);
SSL_write(m_Socket.ssl, pMsg, strlen(pMsg));
在f5的机器上,SSL_write处总是返回-1,貌似SSL_connect处就开始失败了。
代码大体上是正确的,能联通apche的机器,能联通去掉过滤条件的f5机器,但是不能联通加上过滤条件的f5机器。请问我的代码是要调整哪些?要更改什么吗?
我小菜鸟,求指导。