OPENSSL服务 - 安全信息传输(4)

王朝厨房·作者佚名  2007-01-02
宽屏版  字体: |||超大  

1. SSL_METHOD* meth = TLSv1_client_method(); 创建本次会话连接所使用的协议,如果是客户端可以使用

SSL_METHOD* TLSv1_client_method(void); TLSv1.0 协议

SSL_METHOD* SSLv2_client_method(void); SSLv2 协议

SSL_METHOD* SSLv3_client_method(void); SSLv3 协议

SSL_METHOD* SSLv23_client_method(void); SSLv2/v3 协议

服务器同样需要创建本次会话所使用的协议:

SSL_METHOD *TLSv1_server_method(void);

SSL_METHOD *SSLv2_server_method(void);

SSL_METHOD *SSLv3_server_method(void);

SSL_METHOD *SSLv23_server_method(void);

需要注意的是客户端和服务器需要使用相同的协议。

2.申请SSL会话的环境 CTX,使用不同的协议进行会话,其环境也是不同的。申请SSL会话环境的OpenSSL函数是

SSLK_CTX* SSL_CTX_new (SSL_METHOD*); 参数就是前面我们申请的 SSL通讯方式。返回当前的SSL 连接环境的指针。

然后根据自己的需要设置CTX的属性,典型的是设置SSL 握手阶段证书的验证方式和加载自己的证书。

void SSL_CTX_set_verify (SSL_CTX* , int , int* (int, X509_STORE_CTX*) )

设置证书验证的方式。

第一个参数是当前的CTX 指针,第二个是验证方式,如果是要验证对方的话,就使用 SSL_VERIFY_PEER。不需要的话,使用SSL_VERIFY_NONE.一般情况下,客户端需要验证对方,而服务器不需要。第三个参数是处理验证的回调函数,如果没有特殊的需要,使用空指针就可以了。

void SSL_CTX_load_verify_locations(SSL_CTX*, const char* , const char*);

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有