主要介绍openssl进行SSL通信的一些函数以及过程,主要是初始化过程,至于数据的接收以及后续处理可以具体问题具体分析。
load所有的SSL算法
OpenSSL_add_ssl_algorithms();
建立SSL所用的method
SSL_METHOD *meth=SSLv23_method();
初始化上下文情景
SSL_CTX *ctx=SSL_CTX_new(meth);
ret->quiet_shutdown=1;默认的是ret->quiet_shutdown=0;他相当于SSL_set_shutdown函数将参数设置为SSL_SENT_SHUTDOWN|SSL_RECEIVED_SHUTDOWN
当设置为1时,假如关闭后,不通知对方,这样不适合TLS标准
SSL_CTX_set_quiet_shutdown(ctx,1);
ctx->options|=SSL_OP_ALL,SSL/TLS有几个公认的bug,这样设置会使出错的可能更小
SSL_CTX_set_options(ctx,SSL_OP_ALL);
设置cache的大小,默认的为1024*20=20000,这个也就是可以存多少个session_id,一般都不需要更改的。假如为0的话将是无限
SSL_CTX_sess_set_cache_size(ctx,128);
SSL_CTX_load_verify_locations用于加载受信任的CA证书,CAfile如果不为NULL,则他指向的文件包含PEM编码格式的一个或多个证书,可以用e.g.来简要介绍证书内容
CApath如果不为NULL,则它指向一个包含PEM格式的CA证书的目录,目录中每个文件包含一份CA证书,文件名是证书中C
load所有的SSL算法
OpenSSL_add_ssl_algorithms();
建立SSL所用的method
SSL_METHOD *meth=SSLv23_method();
初始化上下文情景
SSL_CTX *ctx=SSL_CTX_new(meth);
ret->quiet_shutdown=1;默认的是ret->quiet_shutdown=0;他相当于SSL_set_shutdown函数将参数设置为SSL_SENT_SHUTDOWN|SSL_RECEIVED_SHUTDOWN
当设置为1时,假如关闭后,不通知对方,这样不适合TLS标准
SSL_CTX_set_quiet_shutdown(ctx,1);
ctx->options|=SSL_OP_ALL,SSL/TLS有几个公认的bug,这样设置会使出错的可能更小
SSL_CTX_set_options(ctx,SSL_OP_ALL);
设置cache的大小,默认的为1024*20=20000,这个也就是可以存多少个session_id,一般都不需要更改的。假如为0的话将是无限
SSL_CTX_sess_set_cache_size(ctx,128);
SSL_CTX_load_verify_locations用于加载受信任的CA证书,CAfile如果不为NULL,则他指向的文件包含PEM编码格式的一个或多个证书,可以用e.g.来简要介绍证书内容
CApath如果不为NULL,则它指向一个包含PEM格式的CA证书的目录,目录中每个文件包含一份CA证书,文件名是证书中C