openssl编程指南
对于openssl应用编程这方面的详细文档很少,我是通过认真分析openssl源码包中的示例代码来学习并结合man文档来理解它的基本结构的。SSL通讯模型为标准的C/S结构,除了在TCP层之上进行传输之外,与一般的通讯没有什么明显的区别。下面我对用SSL建立安全的TCP连接的流程作一简单分析。
一、数字证书准备
通常情况下我们的服务端需要
服务器端的私钥server.key文件
服务器端证书server.crt文件
对于双向认证连接,要用到
客户端的私钥client.key文件
客户器端证书client.crt文件
对于单向认证连接,不需要用到户端证书文件
二、 程序结构
与ssl有关的头文件都放在openssl目录下,通常需要用到这些:
#include /* SSLeay stuff */与RSA算法有关的一些定义
#include /*加密库接口*/
#include /*证书文件相关*/
1、对OPENSSL的一些必要的初始化
SSL_load_error_strings(); /*进行错误信息的初始化,不是必须的, 如果要使用OpenSSL的出错信息打印,就要调用它*/