




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计算机网络高级软件编程技术计算机网络高级软件编程技术1计算机网络高级软件编程技术计算机网络高级软件编程技术2计算机网络高级软件编程技术计算机网络高级软件编程技术3 由于由于HTTP采用明文传输,因此网络传输采用明文传输,因此网络传输中的重要数据有被第三方截获的危险。中的重要数据有被第三方截获的危险。HTTPS使用使用SSL在发送方将原始数据进在发送方将原始数据进行加密,然后在接收方进行解密,有利行加密,然后在接收方进行解密,有利于于Web数据的安全传输数据的安全传输计算机网络高级软件编程技术计算机网络高级软件编程技术4 编程训练目的编程训练目的 编程训练要求编程训练要求 相关知识介绍相关知识介
2、绍 程序设计分析程序设计分析 扩展与提高扩展与提高计算机网络高级软件编程技术计算机网络高级软件编程技术5 在基础类编程训练在基础类编程训练10的基础上,掌握基的基础上,掌握基于于OpenSSL协议的安全协议的安全Web Server的软的软件结构的设计与编程实现件结构的设计与编程实现 掌握利用掌握利用OpenSSL生成认证证书的方法生成认证证书的方法 熟悉客户端认证与利用熟悉客户端认证与利用IPSec实现安全通实现安全通信的方法信的方法计算机网络高级软件编程技术计算机网络高级软件编程技术6 编程训练目的编程训练目的 编程训练要求编程训练要求 相关知识介绍相关知识介绍 程序设计分析程序设计分析
3、扩展与提高扩展与提高计算机网络高级软件编程技术计算机网络高级软件编程技术7 编写程序,利用编写程序,利用OpenSSL实现安全的实现安全的Web Server,具体要求如下,具体要求如下 :Server启动时可指定端口,缺省为启动时可指定端口,缺省为443可指定可指定Web Server根目录的路径,比如根目录的路径,比如C:ServerServer应能够并发处理多个请求,要求至少能支持应能够并发处理多个请求,要求至少能支持Get命令。可以增强命令。可以增强Web Server的功能,如支持的功能,如支持Head、Post以及以及Delete命令等命令等书写必要的客户端测试程序用于发送书写必要
4、的客户端测试程序用于发送HTTPS请求并请求并显示返回结果,也可使用一般的显示返回结果,也可使用一般的Web浏览器测试浏览器测试计算机网络高级软件编程技术计算机网络高级软件编程技术8程序运行的参考界面程序运行的参考界面 计算机网络高级软件编程技术计算机网络高级软件编程技术9 编程训练目的编程训练目的 编程训练要求编程训练要求 相关知识介绍相关知识介绍 程序设计分析程序设计分析 扩展与提高扩展与提高计算机网络高级软件编程技术计算机网络高级软件编程技术10SSL协议协议 SSL协议栈协议栈 计算机网络高级软件编程技术计算机网络高级软件编程技术11SSL握手协议握手协议工作过程工作过程 计算机网络高
5、级软件编程技术计算机网络高级软件编程技术12OpenSSL库库OpenSSL库的安装库的安装 安装安装VC+ 6.0从官方网站从官方网站http:/ 在在VC的的Include files中增加中增加OpenSSLinc32目录目录在在Libray files中增加中增加openssl-0.9.8out32dll目录目录其中,其中,OpenSSL表示表示OpenSSL的安装目录的安装目录计算机网络高级软件编程技术计算机网络高级软件编程技术13OpenSSL的命令行接口的命令行接口 OpenSSL为用户提供的命令行接口功能为用户提供的命令行接口功能非常丰富,如创建和管理证书、生成消非常丰富,如创
6、建和管理证书、生成消息摘要、加密和解密文件等息摘要、加密和解密文件等 其命令行格式如下:其命令行格式如下:openssl command command_opts command_args ncommand可以为可以为x509、md5、sha1、des、idea等等 计算机网络高级软件编程技术计算机网络高级软件编程技术14OpenSSL的编程接口的编程接口 初始化初始化OpenSSL库库 建立上下文环境建立上下文环境 建立连接建立连接 使用连接完成应用数据交换使用连接完成应用数据交换 关闭连接并释放相关资源关闭连接并释放相关资源 计算机网络高级软件编程技术计算机网络高级软件编程技术15 编程训
7、练目的编程训练目的 编程训练要求编程训练要求 相关知识介绍相关知识介绍 程序设计分析程序设计分析 扩展与提高扩展与提高计算机网络高级软件编程技术计算机网络高级软件编程技术16 计算机网络高级软件编程技术计算机网络高级软件编程技术17初始化初始化OpenSSL库库建立上下文环境建立上下文环境SSL_library_init();/ 加载OpenSSL将会用到的算法SSL_load_error_strings();/ 加载错误字符串SSL_METHOD *meth;SSL_CTX *ctx; /SSL_CTX对象meth = SSLv23_method(); /相应的SSL结构能理解SL2.0、3
8、.0以及TSL1.0ctx = SSL_CTX_new(meth); /创建一个上下文环境/指定所使用的证书文件SSL_CTX_use_certificate_chain_file(ctx, “server.pem”); /设置密码回调函数SSL_CTX_set_default_passwd_cb(ctx, password_cb);/ 加载私钥文件SSL_CTX_use_PrivateKey_file(ctx,“server.pem”,SSL_FILETYPE_PEM); / 加载受信任的CA证书SSL_CTX_load_verify_locations(ctx, root.pem, 0);
9、计算机网络高级软件编程技术计算机网络高级软件编程技术18创建一个流式套接字在某个端口侦听创建一个流式套接字在某个端口侦听创建创建ListenThread线程,接受客户端连线程,接受客户端连接请求接请求创建创建ClientThread线程处理客户请求线程处理客户请求关闭连接并释放相关资源关闭连接并释放相关资源/ 在ClientThread线程完成客户端的请求后,需要释放以下资源:SSL_shutdown(ssl); / 关闭SSL连接SSL_free(ssl);/ 释放SSL结构/ 在服务器结束服务之前还需要释放在第2步中创建的SSL上下文环境:SSL_CTX_free(ctx);计算机网络高级
10、软件编程技术计算机网络高级软件编程技术19建立建立CA中心中心 l生成生成CA中心的私钥中心的私钥openssl req -newkey rsa:1024 -sha1 -keyout rootkey.pem -out rootreq.peml生成生成CA中心的自签证书中心的自签证书openssl x509 -req -in rootreq.pem -sha1 -extensions v3_ca -days 365 -signkey rootkey.pem -out rootcert.peml生成生成Web服务器的私钥和认证请求服务器的私钥和认证请求openssl req -newkey rsa
11、:1024 -sha1 -keyout serverkey.pem -out serverreq.pem为为Web服务器签发证书服务器签发证书 openssl x509 -req -in serverreq.pem -sha1 -extensions usr_cert -CA rootcert.pem -CAkey rootkey.pem -CAcreateserial -out server.pemserver.pem即为即为CA中心为中心为Web服务器签发的证书服务器签发的证书 计算机网络高级软件编程技术计算机网络高级软件编程技术20 编程训练目的编程训练目的 编程训练要求编程训练要求 相
12、关知识介绍相关知识介绍 程序设计分析程序设计分析 扩展与提高扩展与提高计算机网络高级软件编程技术计算机网络高级软件编程技术21客户端认证客户端认证OpenSSL提供的相关提供的相关API如下:如下:l设置可信设置可信CA证书文件证书文件int SSL_CTX_load_verify_locations( SSL_CTX *ctx, const char * cafile, const char * cadir);l设置认证模式设置认证模式 int SSL_CTX_set_verify(SSL_CTX *ctx, int mode, int (*verify_callback) (int, X509_STORE_CTX *);使用双向认证模式需要将使用双向认证模式需要将mod
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国激光雕刻软件项目创业计划书
- 中国AI开发平台项目创业计划书
- 中国金融移动应用项目创业计划书
- 中国计算机辅助翻译(CAT)系统项目创业计划书
- 中国骨科材料项目创业计划书
- 中国高档牛羊肉项目创业计划书
- 中国动态应用程序安全测试软件项目创业计划书
- 中国3D购物项目创业计划书
- 量子动力学在生物医学中的应用研究-洞察阐释
- 乐理乐理试题及答案
- 园艺学:植物嫁接技术的创新与应用
- 2025商丘市辅警考试试卷真题
- 大班社会《好担心》课件教案设计
- 车间包装饮料管理制度
- 2024年山东省胸痛中心质控报告
- 辅导员考试题型及出题趋势试题及答案
- 餐饮部安全知识培训课件
- 2025湖北省安全员考试题库附答案
- 2024年吉林省中考满分作文《情味浸润的时光》2
- 见证取样送检计划方案
- 石油工程领域实习报告模板
评论
0/150
提交评论