OpenSSL编程初探2 --- 关于证书文件的加载

本文详细分析了OpenSSL加载证书文件的过程,包括证书文件的编码类型(二进制和ASCII Base64)以及如何加载证书链。强调加载时必须确保文件编码类型与API参数匹配,并提供了加载完整证书链的函数示例:SSL_CTX_use_certificate_chain_file和SSL_CTX_add_extra_chain_cert。
摘要由CSDN通过智能技术生成

使用OpenSSL加载证书文件的过程分析与代码示例

本文由CSDN-蚍蜉撼青松【主页:http://blog.csdn.net/howeverpf】原创,转载请注明出处!


 

        一般说来,当前主流网站都走的单项认证的路子,即只有服务器需向客户端发送证书,客户端不需向服务器发送证书。在这种情况下,加载证书是服务端需要做的事情。所以下面给个基于openssl的SSL服务端例程,内含加载证书的代码(有特别标注):

    // 前面省略了服务端socket套接字的创建过程
    // 接受客户端的socket连接
    m_nConversion = accept(nListen, (sockaddr *)&addr_client, &size);
    if (m_nConversion == -1)
    {
        printf("accept failed!\n");
        continue;
    }
 
    // 创建服务端SSL会话环境
    m_pServerCtx = SSL_CTX_new(SSLv23_server_method());
    if (m_pServerCtx == 0)
    {
        printf("SSL_CTX_new for Server failed!\n");
        return -1;
    }
 
/*-------------------------Begin of:服务端公私钥加载-------------------------*/
    // 为服务端指定SSL连接所用公钥证书
    //参数 m_pServerCtx,服务端SSL会话环境
    //参数 pCertPath,你存放公钥证书的路径
    //参数 SSL_FILETYPE_PEM,指定你所要加载的公钥证书的文件编码类型为 Base64
    if (SSL_CTX_use_certificate_file(m_pServerCtx, pCertPath, SSL_FILETYPE_PEM) != 1)
    {
        printf("SSL_CTX_use_certificate_file failed!\n");
        return -1;
    }
    // 为服务端指定SSL连接所用私钥
    //参数 m_pServerCtx,服务端SSL会话环境
    //参数 pKeyPath,你存放对应私钥文件的路径
    //参数 SSL_FILETYPE_PEM,指定你所要加载的私钥文件的文件编码类型为 Base64
    if (SSL_CTX_use_PrivateKey_file(m_pServerCtx, pKeyPath, SSL_FILETYPE_PEM) != 1)
    {
        printf("SSL_CTX_use_PrivateKey_file failed!\n");
        return -1;
    }
    // 检查SSL连接 所用的私钥与证书是否匹配【所以你仅有公钥
  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
OpenSSL编程是一种基于开源的密码学库的编程,为了便于开发者理解和使用OpenSSL,官方提供了一份源码分析的.chm文档。 首先,OpenSSL是一个功能强大的密码学库,提供了各种密码学算法的实现,如对称加密算法(如AES)、非对称加密算法(如RSA)、哈希算法(如MD5)、数字签名等。通过使用OpenSSL库,开发者可以在自己的应用程序中轻松地实现安全性和保密性。 然而,OpenSSL庞大的代码库对于新手来说可能是一个挑战。为了帮助开发者更好地理解OpenSSL的功能和代码结构,官方提供了一份源码分析的.chm文档。 该文档包含了OpenSSL库的最新源代码的详细分析和说明。通过阅读文档,开发者可以逐步了解库的结构和主要功能模块,如SSL/TLS协议库、公钥加密算法库、哈希算法库等。文档还提供了对每个函数的详细解释和用法示例,以及示例代码,帮助开发者更好地理解和应用OpenSSL。 源码分析的.chm文档可以被阅读器打开,并提供了方便的导航和搜索功能。通过使用该文档,开发者可以更高效地学习和使用OpenSSL编程,快速解决问题和实现自己的密码学需求。 总结来说,OpenSSL编程是一种使用开源密码学库的编程技术,官方提供了源码分析的.chm文档,帮助开发者理解和使用OpenSSL库的功能和代码结构。通过阅读该文档,开发者可以更好地掌握OpenSSL编程,并应用于实际的安全性和保密性需求中。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值