OpenSSL 安装、介绍

OpenSSL简介

附带很具有参考价值的网站:http://blog.yorkgu.me/2011/10/27/rsa-in-ios-using-publick-key-generated-by-openssl/

OpenSSL 是一个功能丰富及自包含的安全开源工具箱,它提供的主要功能为SSL协议实现(包括SSLv2、SSLv3和TLSv1)、大量软算法(对称/非对称/摘要)、大数运算、非对称算法密钥生成、ASN.1编解码库、证书请求(PKCS10)编解码、数字证书编解码、CRL编解码、OCSP协议、数字证书验证、PKCS7标准实现和PKCS12个人数字证书格式实现等功能,OpenSSL是一个以C语言作为开发语言的工具包,它支持Linux、UNIX、windows、Mac等平台,所以它具有很好的跨平台性能。

Mac OS 环境下使用OpenSSL生成私钥和公钥

MAC OS自带了OpenSSL,所以不用去编译那一坨跟SHIT一样的源码,直接在命令行里使用OPENSSL就可以。打开命令行工具,然后输入 openssl打开openssl,接着只要三句命令就可以搞定。第一句命令生成私钥;第二句命令把RSA私钥转换成PKCS8格式,密码为空就行;第三句命令生成公钥。

按顺序shell中执行

1.$ openssl

2.OpenSSL> pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM –no crypt

Enter Encryption Password:

3.OpenSSL> rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem

writing RSA key

至此成功生成私钥公钥两个文件。

-------

windows下的安装1:

OpenSSL在Windows下的编译安装

解压openssl-1.0.0d.tar.gz以后, 在其目录下可以发现有个INSTALL.W32文件,这个文件就是在windows下的安装说明。

1.安装perl,perl可以从http://www.activestate.com/ActivePerl下载。

2.安装编译器(任意一个都可以),我在Visual C++ 2005安装成功了,VC2008安装失败了

3.如果通过汇编的方式编译,需要安装汇编语言编译器。MASM NASM都可以。如果速度要求不高,可以不用汇编的方式编译,即不需要安装。MASM一般由VC++自带,Windows NT 4.0 DDK a和Windows 98 DDK也带有MASM。把XXXXXml.exe和XXXXXml.err文件,提取出来,命名为ml.exe和ml.err,并把他们放到PATH路径中即可。

NASM可以免费获取,很多地方都可以下载到,如http://www.kernel.org/pub/software/devel/nasm/binaries/win32/

nasmw.exe文件也需要放到PATH路径中。

4.打开一个DOS窗口,输入:perl Configure VC-WIN32

5.如果使用MASM,接着输入:ms\do_masm

如果使用NASM,接着输入:ms\do_nasm

如果不使用汇编语言编译器,输入:ms\do_ms

我用的是:ms\do_ms

6.在DOS窗口中接着输入:nmake -f ms\ntdll.mak

如果没有错误的话,编译就通过了,在out32dll目录下面就可以看到,生成的dll文件和可执行文件了。把他们放到,PATH环境变量对应的一个目录里就可以了。

----------

linux下的安装:

wget http://www.openssl.org/source/openssl-1.0.0d.tar.gz

tar xvzf openssl-1.0.0d.tar.gz

cd openssl-1.0.0d

如果需要zlib压缩模块的话,还需要先安装zlib

然后:

./config --prefix=/usr/local/ssl shared zlib-dynamic

不需要就直接用:

./config --prefix=/usr/local/ssl shared no-zlib

更多详细帮助请运行

./config --help

然后:

make && make install

没问题的话就会一路跑下去,可以去泡杯咖啡,泡个妞,回来差不多就好了。

ARM平台的交叉编译安装:

编译:openssl

./config no-asm no-zlib --prefix=/arm/openssl os/compiler:arm-linux-gcc

修改:

CC= arm-linux-gcc

AR= arm-linux-ar $(ARFLAGS) r

RANLIB= arm-linux-ranlib

如果存在 -march=pentium 就去掉。

推荐阅读更多精彩内容