Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->Linux技术 ->Linux安全 ->正文

Linux下创建安全和非安全连接(下)

来源: 作者: 时间:2007-04-11 点击: [收藏] [投稿]

为安全连接进行设置

为安全连接进行设置要多几行代码。同时需要有另一个类型为 SSL_CTX 的指针。该结构保存了一些 SSL 信息。您也可以利用它通过 BIO 库建立 SSL 连接。可以通过使用 SSL 方法函数调用 SSL_CTX_new 来创建这个结构,该方法函数通常是 SSLv23_client_method 。

还需要另一个 SSL 类型的指针来保持 SSL 连接结构(这是短时间就能完成的一些连接所必需的)。以后还可以用该 SSL 指针来检查连接信息或设置其他 SSL 参数。

SSL_CTX * ctx = SSL_CTX_new(SSLv23_client_method());
SSL * ssl;

清单 7. 设置 SSL 指针

加载可信任证书库

在创建上下文结构之后,必须加载一个可信任证书库。这是成功验证每个证书所必需的。如果不能确认证书是可信任的,那么 OpenSSL 会把证书标记为无效(但连接仍可以继续)。

OpenSSL 附带了一组可信任证书。它们位于源文件树的 certs 目录中。不过,每个证书都是一个独立的文件 —— 也就是说,需要单独加载每一个证书。在 certs 目录下,还有一个存放过期证书的子目录。试图加载这些证书把会出错。

如果您愿意,可以分别加载每一个文件,但为了简便起见,最新的 OpenSSL 发行版本的可信任证书通常存放在源代码档案文件中,这些档案文件位于名为“TrustStore.pem”的单个文件中。如果已经有了一个可信任证书库,并打算把它用于特定的项目中,那么只需使用您的文件替换清单 8 中的“TrustStore.pem”(或者使用单独的函数调用把它们全部加载)即可。

可以调用 SSL_CTX_load_verify_locations 来加载可信任证书库文件。这里要用到三个参数:上下文指针、可信任库文件的路径 和文件名,以及证书所在目录的路径。必须指定可信任库文件或证书的目录。如果指定成功,则返回 1,如果遇到问题,则返回 0。

if(! SSL_CTX_load_verify_locations(ctx, "/path/to/TrustStore.pem", NULL))
{
    /* Handle failed load here */
}

清单 8. 加载信任库

如果打算使用目录存储可信任库,那么必须要以特定的方式命名文件。OpenSSL 文档清楚地说明了应该怎么样去做,不过,OpenSSL 附带了一个名为 c_rehash 的工具,它可以把文件夹配置为可用于 SSL_CTX_load_verify_locations 的路径参数。

/* Use this at the command line */

c_rehash /path/to/certfolder

/* then call this from within the application */

if(! SSL_CTX_load_verify_locations(ctx, NULL, "/path/to/certfolder"))
{
    /* Handle error here */
}

清单 9. 配置证书文件夹并使用它

为了指定所有需要的验证证书,您可以根据需要命名任意数量的单独文件或文件夹。您还可以同时指定文件和文件夹。

 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇:Linux下创建安全和非安全连接(上)   下一篇:怎么样保证Linux操作系统下的密码安全

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
Power by linux-cn.com 粤ICP备05006655号