http://blog.youkuaiyun.com/lizhoujian/article/details/2850239
http://www.cnblogs.com/vilyLei/articles/2115970.html
SSL是一种国际标准的加密及身份认证通信协议.SSL的英文全称是"Secure SocketsLayer",中文名为"安全套接层协议层",它是网景(Netscape)公司提出的基于 WEB应用的安全协议。SSL协议指定了一种在应用程序协议(如HTTP 、Telenet 、 NMTP 和 FTP 等)和 TCP/IP协议之间提供数据安全性分层的机制,它为 TCP/IP 连接提供数据加密、服务器认证、消息完整性以及可选的客户机认证.
一. 下载OpenSSL源码包:
下载网址:
http://www.openssl.org,但最好还是在GOOGLE里面搜索WIN32版本的OpenSSL,网上很多.
二.OpenSSL编译:
一.Windows系统下编译步骤:
1.安装VC6.0或更高版本;
2.安装perl5或更高版本.下载网址:
http://www.perl.com;
3.解压 openssl;
4.在控制台下进入openssl目录;
5.输入"perl Configure VC-WIN32"进行安装配置;
6.输入"ms/do_ms.bat"(可用其它方式完成,查看INSTALL.W32文件);
7.输入"nmake -f ms/nt.mak"(静态库)或"nmake -fms/ntdll.mak"(动态库);
安装完毕后,生成的库文件放在inc32目录下,动/静态库和可执行文件放在out32和out32dll目录下.
二.Linux系统下编译步骤:(
具体安装步骤见下面)
1.解压openssl开发包文件;
2.在命令模式下输入"./config--prefix=/usr/local/openssl"(其它选项用"./config --help"查看);
3.make install;
4.make test(测试,可选);
安装完成后,openssl 会被安装到/usr/local/openssl 目录,包括头文件目录include、可执行
文件目录bin、man在线帮助、库目录lib以及配置文件目录(ssl).
三.Openssl安 装:
一.Windows系统下的安装步骤:
1.新建openssl/include目录与openssl/lib目录;
2.将openssl/inc32目录下的所有文件复制到include目录;
3.将openssl/out32目录上的libeay32lib,SSLeay32.lib复制到lib目录;
4.在vc6.0(以vc6.0为例,其它IDE可能不一样)中tools->optional->directory中可如头文件.
二.linux系统下的安装步骤;
在linux系统不用安装,默认就会安装到/usr/local/openssl下.
1$ tar zxvf openssl-1.0.0d.tar.gz -C /opt/
2$ ./config --prefix=/usr/local/openssl-1.0.0d shared zlib-dynamic enable-camellia --prefix=/usr/local/openssl-1.0.0d
(一般的linux系统用命令为: ./Configure)
3$ ./config -t
4$ make depend
5$ make
6$ make test
7$ make install
附加: 为了ssl
a:$ /usr/local/ssl-0.9.8lk/ssl
b:$ vi openssl.cnf
default_bits = 1024
改 default_bits = 8192//为了安全最好改为4096以上的数据
c:$ countryName = Country Name (2 letter code)
改 countryName = CN //只能使用2字母的国家代码
d:$ countryName_default = AU
改countryName_default = Beijing
= Beijing //省份或直辖市名称
8$ a)cd /usr/local
b)ln -s ssl-0.9.8lk ssl
9$ a)cd /etc/ld.so.conf.d
b)cp -r /usr/local/ssl-0.9.8lk/lib/ ./
10$ cd /etc
vi ld.so.conf
加入:/usr/local/ssl-0.9.8lk/lib
11$ cd /usr/local/ssl-0.9.8lk/lib
ldconfig
12$ vi /root/.bash_profile
另外一个终端:echo $PATH 把PATH显示路径加入到.bash_profile里
例如: PATH=$PATH:/usr/local/ssl-0.9.8lk/bin$HOME/bin
13$ source ~/.bash_profile
14$ cd /usr/local/
15$ ldd /usr/local/ssl-0.9.8lk/bin/openssl
16$ which openssl
17$ openssl version
不进行make install安装的话,就在你openssl的源码目录里,当然你config的时候需要指明shared,否则只有.a的,没有.so的。
如果config的时候,指定了prefix,那么就到你指定的目录去找,下面应该有个lib目录。
如果你的linux自带openssl的话,系统的lib目录下就有。libcrypto和libssl
一般源码的安装包里解压后都有个README,那个是最正确的。
养成个习惯,每次安装之前都去看看。
大部分的软件安装都是./configure && make && make install
但总有不同的,甚至相同软件包的不同版本都有差异
查看该安装目录下的所有目录名:
#ls
bin
certs
include
lib
man
misc
openssl.cnf
private
其中:
bin:存放openssl的应用程序
certs:初始化的时候是空目录,用于存放证书文件的默认目录
include:存放使用openssl的静态链接库的时候需要的头文件,以openssl目录存放
lib:存放openssl静态链接库和动态链接库
man:存放openssl的说明文档
misc:存放一些脚本指令文件
private:初始化的时候是空目录,用于存放私钥文件的默认目录。
openssl.cnf:应该是配置文件
注意:OpenSSL的头文件需用 apt-getinstall libssl-dev来安装.
------------------------------------------------------------------------------------------------------------------------------------------
解释的比较详细:
先安装zlib,见linux下安装zlib
安装openssl
Our Configuration
- Install to : 默认安装路径 /usr/local/ssl
- Module type : dynamically and staticly loaded modules, *.so*.a
Build Instructions
Configure
.../openssl-0.9.8c]# ./config--prefix=/usr/local/
--openssldir=/usr/local/openssl
-g3 shared zlib-dynamicenable-camellia
--prefix=/usr/local/
--openssldir=/usr/local/openssl
[指定安装路 径; 默认是'/usr/local/ssl' -- which we willsymlink]shared
[in addition to the usual static libraries, create sharedlibraries]zlib-dynamic
[like "zlib", but has OpenSSL load the zlib librarydynamically when needed]enable-camellia
[enables the symmetric cipher 'Camellia' (128-bit, 192-bit,256-bit key versions), which is now available for royalty-freeuse]- 运行./config --prefix=/usr/local/openssl (更多选项用./config --help来查看),可用的选项有:no-mdc2、no-cast no-rc2、no-rc5、no-ripemd、no-rc4 no-des 、no-md2、no-md4、no-idea 、no-aes、no-bf、no-err、no-dsa、no-dh、no-ec、no-hw、no-asm、no-krb5、no-dso 、no-threads 、no-zlib、-DOPENSSL_NO_HASH_COMP、-DOPENSSL_NO_ERR、-DOPENSSL_NO_HW 、-DOPENSSL_NO_OCSP、-DOPENSSL_NO_SHA256和-DOPENSSL_NO_SHA512等。去掉不必要的内容可以减少生成库的大小。 若要生成debug版本的库和可执行程序加-g或者-g3(openssl中有很多宏,需要调试学习最好加上-g3)。
display guess on system made by './config'...
.../openssl-0.9.8c]# ./config -t
正 式安装,Build and Install
.../openssl-0.9.8c]# make depend
[step required since extra cipher wasenabled] (时间很长)
.../openssl-0.9.8c]# make (时间很长,慢慢等待)
.../openssl-0.9.8c]# make test
.../openssl-0.9.8c]# make install