初识Openssl

因为项目的原因,最近一直在跟IPsec和SSL/TLS打交道。公司的产品是基于Openssl开源代码库来实现的,加之我一直对这一块比较感兴趣,所以趁着这个机会决心好好了解一下Openssl和基于Openssl的编程。Openssl是一个很好的开源代码项目,但是它最大的缺点在于文档不完善。虽然国外有一些专门介绍openssl编程的书籍,但是几乎没有国内的出版社加以翻译引进,所以对于中国的开发者而言了解openssl是一项颇为头疼的工作。我想知识是用于分享的,趁着自己尚有热情,利用博客的形式来给大家分享一下我自己学习途中所遇到的困难和收获。如能乐己而助人,不亦乐乎!本着分享的原则,如有转载,请注明出处!


本篇先从Openssl的安装开始,逐步了解如何生成一个自签名的CA,并用这个CA来签发两个简单证书,从而对openssl有一个初步的了解。在后继的博文中,我将逐步展开对SSL/TLS协议的讨论和探索利用openssl库来编写简单的ssl程序。


因为我几乎不与windows编程打交道,所以以下都是以linux(Ubuntu或者Fedora)作为编程环境。但是大同小异,触类旁通,相信了解了linux下的openssl,你也可以很容易的转移到windows的开发。安装openssl有两种方式,第一种是利用linux发行版的软件仓库,比如Ubuntu的aptitude或者Fedora的yum来安装;第二种是从openssl.org下载openssl的最新代码,自己编译安装。两种方法都不困难,但是我推荐使用软件仓库,因为每个不同版本的linux中的软件可能只和某个特定版本的openssl兼容。从openssl.org上下载的最近代码,可能会导致某些软件的兼容错误。


OpenSSL的安装

因为是做开发,所以我们选择安装openssl和libssl-dev,其中openssl是一个程序组,帮助我们生成CA和证书等,libssl-dev包含了openssl的include文件和代码库,是我们开发到必备组件。安装过程如下:

Ubuntu:

首先,确认系统中openssl的信息

# aptitude show openssl

如果没有安装,运行以下命令安装

# aptitude install openssl

完成后,在shell中输入openssl,如果出现openssl命令行控制台就说明已经安装成功

# openssl
OpenSSL>

安装libssl-dev到过程跟上面类似:

# aptitude show libssl-dev
# aptitude install libssl-dev
# whereis openssl

这时应该可以看到openssl所在的bin目录和头文件所在的include目录。

到现在,openssl的安装就告一段落了,下面将演示如何修改openssl的配置文件,已经如何部署自签名的CA和证书。


生成自签名的CA证书

你可能感兴趣的:(OpenSSL,ubuntu,编程,linux,ssl,include,服务器)