openssl编程入门(含完整可编译和运行示例)-阿里云开发者社区

开发者社区> 一见蓝天> 正文

openssl编程入门(含完整可编译和运行示例)

简介: OpenSSL编程入门(含完整示例).docOpenSSL编程入门(含完整示例).pdf OpenSSL编程入门(含完整示例) 易剑 2008/12/5 目录 目录 1 1.
+关注继续查看
img_e25d4fb2f8de1caf41a735ec53088516.pngOpenSSL编程入门(含完整示例).docimg_e25d4fb2f8de1caf41a735ec53088516.pngOpenSSL编程入门(含完整示例).pdf

OpenSSL编程入门(含完整示例)

易剑 2008/12/5

目录

目录 1

1. 编写目的 1

2. 示例包 1

3. 什么是SSL 2

4. 什么是openssl 2

5. 示例程序 2

6. 服务端编写步骤 3

7. 客户端编写步骤 4

8. 相关头文件 4

8.1. socket头文件 4

8.2. SSL头文件 4

9. 结尾 5

 

1. 编写目的

第一次跑起openssl示例并不太简单,本文的目的是为了让这个过程变得非常简单。在开始之前,要非常感谢周立发同学,正是通过他共享的示例,较轻松的入了门。

本文档对他共享的示例中的一个小错误进行了修正,并提供了傻瓜式的“编译-生成-KEY运行”一条龙脚本(方法请参见压缩包中的readme文件),让跑第一个openssl程序变得轻轻松松。

2. 示例包

img_e25d4fb2f8de1caf41a735ec53088516.pngssl_test.zip

ssl_test.tar.gz为示例源代码包,openssl-0.9.8h-SuSE10.tar.gzopenssl二进制包(因超过2M,不能作为附件下载,请上官网下载),测试时是安装在/usr/local/ssl

ssl_test.tar.gz中的示例在SuSE10中测试通过,使用的是openssl-0.9.8h,它包括如下文件:

-rw-r--r-- 1 root root 1346 Dec 5 18:11 cacert.pem

-rwxr-xr-x 1 root root 114 Dec 5 18:11 make_key.sh

-rwxr-xr-x 1 root root 172 Dec 5 18:37 mk_client.sh

-rwxr-xr-x 1 root root 172 Dec 5 18:37 mk_server.sh

-rw-r--r-- 1 root root 1679 Dec 5 18:11 privkey.pem

-rw-r--r-- 1 root root 167 Dec 5 18:39 readme

-rwxr-xr-x 1 root root 38 Dec 5 18:38 run_client.sh

-rwxr-xr-x 1 root root 64 Dec 5 18:38 run_server.sh

-rwxr-xr-x 1 root root 1140142 Dec 5 18:38 ssl_client

-rw-r--r-- 1 root root 3928 Dec 5 17:31 ssl_client.cpp

-rwxr-xr-x 1 root root 1139667 Dec 5 18:38 ssl_server

-rw-r--r-- 1 root root 4882 Dec 5 17:31 ssl_server.cpp

 

readme为包内容说明,run_server.sh用来运行服务端,run_client.sh用来运行客户端,mk_server.sh用来编译服务端,mk_client.sh用来编译客户端,make_key.sh用来生成钥匙KEY

3. 什么是SSL

在学习openssl编程之前,先了解一下什么是SSL,有助于后续的学习。SSL 是一个缩写,代表的是 Secure Sockets Layer。它是支持在 Internet 上进行安全通信的标准,并且将数据密码术集成到了协议之中。数据在离开您的计算机之前就已经被加密,然后只有到达它预定的目标后才被解密。证书和密码学算法支持了这一切的运转,使用 OpenSSL,您将有机会切身体会它们。

理论上,如果加密的数据在到达目标之前被截取或窃听,那些数据是不可能被破解的。不过,由于计算机的变化一年比一年快,而且密码翻译方法有了新的发展,因此,SSL 中使用的加密协议被破解的可能性也在增大。可以将 SSL 和安全连接用于 Internet 上任何类型的协议,不管是 HTTPPOP3,还是 FTP。还可以用 SSL 来保护 Telnet 会话。虽然可以用 SSL 保护任何连接,但是不必对每一类连接都使用 SSL。如果连接传输敏感信息,则应使用 SSL

4. 什么是openssl

OpenSSL 不仅仅是 SSL。它可以实现消息摘要、文件的加密和解密、数字证书、数字签名和随机数字。关于 OpenSSL 库的内容非常多,远不是一篇文章可以容纳的。

OpenSSL 不只是 API,它还是一个命令行工具。命令行工具可以完成与 API 同样的工作,而且更进一步,可以测试 SSL 服务器和客户机。

5. 示例程序

示例的说明请参见下面这篇周立发共享的文章。

img_e25d4fb2f8de1caf41a735ec53088516.png加密通讯协议SSL编程.pdf

6. 服务端编写步骤

7. 客户端编写步骤

8. 相关头文件

8.1. socket头文件

#include 

#include 

#include 

#include 

8.2. SSL头文件

#include 

#include 

9. 结尾

上面步骤应当画得比较清楚了,结合图再对照ssl_test.tar.gz和《加密通讯协议SSL编程.pdf》就可以非常快地上手了。

 


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,大概有三种登录方式:
2730 0
阿里云服务器ECS远程登录用户名密码查询方法
阿里云服务器ECS远程连接登录输入用户名和密码,阿里云没有默认密码,如果购买时没设置需要先重置实例密码,Windows用户名是administrator,Linux账号是root,阿小云来详细说下阿里云服务器远程登录连接用户名和密码查询方法
10715 0
使用SSH远程登录阿里云ECS服务器
远程连接服务器以及配置环境
2208 0
使用OpenApi弹性释放和设置云服务器ECS释放
云服务器ECS的一个重要特性就是按需创建资源。您可以在业务高峰期按需弹性的自定义规则进行资源创建,在完成业务计算的时候释放资源。本篇将提供几个Tips帮助您更加容易和自动化的完成云服务器的释放和弹性设置。
11797 0
阿里云服务器安全组设置内网互通的方法
虽然0.0.0.0/0使用非常方便,但是发现很多同学使用它来做内网互通,这是有安全风险的,实例有可能会在经典网络被内网IP访问到。下面介绍一下四种安全的内网互联设置方法。 购买前请先:领取阿里云幸运券,有很多优惠,可到下文中领取。
11751 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
11911 0
腾讯云服务器 设置ngxin + fastdfs +tomcat 开机自启动
在tomcat中新建一个可以启动的 .sh 脚本文件 /usr/local/tomcat7/bin/ export JAVA_HOME=/usr/local/java/jdk7 export PATH=$JAVA_HOME/bin/:$PATH export CLASSPATH=.
4525 0
如何设置阿里云服务器安全组?阿里云安全组规则详细解说
阿里云安全组设置详细图文教程(收藏起来) 阿里云服务器安全组设置规则分享,阿里云服务器安全组如何放行端口设置教程。阿里云会要求客户设置安全组,如果不设置,阿里云会指定默认的安全组。那么,这个安全组是什么呢?顾名思义,就是为了服务器安全设置的。安全组其实就是一个虚拟的防火墙,可以让用户从端口、IP的维度来筛选对应服务器的访问者,从而形成一个云上的安全域。
7102 0
+关注
一见蓝天
擅长面向对象设计、C++程序开发,在金山和华为呆过,互联网从业十多年,有分布式计算和存储系统经验。
589
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载