admin 管理员组

文章数量: 887039


2023年12月23日发(作者:send要加to吗)

Openssl安装及使用

一 软件

Windows下需要用到的软件

1. ActivePerl

一个perl脚本解释器。其包含了包括有 Perl for Win32、Perl

for ISAPI、PerlScript、Perl Package Manager四套开发工具程序,可以让你编写出适用于unix,windows,linux系统的CGI程序来。安装的只是perl的一个解释程序啦,外观上也不会发生什么变化,你在windows的cmd界面里输入perl -v可查看你所安装的版本。在你编译perl程序时会用到它。

2. C++编译器

编译器就是将“高级语言”翻译为“机器语言(低级语言)”的程序。一个现代编译器的主要工作流程:源代码 (source code)

→ 预处理器 (preprocessor) → 编译器 (compiler) → 汇编程序

(assembler) → 目标代码 (object code) → 链接器 (Linker) → 可执行程序 (executables)。 c++编译器是一个与标准化C++高度兼容的编译环境。这点对于编译可移植的代码十分重要。编译器对不同的CPU会进行不同的优化。

3. OpenSSL

OpenSSL是一个强大的安全套接字层密码库,Apache使用

它加密HTTPS,OpenSSH使用它加密SSH,它还是一个多用途的、跨平台的密码工具。

OpenSSL整个软件包大概可以分成三个主要的功能部分:密码算法库、SSL协议库以及应用程序。OpenSSL的目录结构自然也是围绕这三个功能部分进行规划的。作为一个基于密码学的安全开发包,OpenSSL提供的功能相当强大和全面,囊括了主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议,并提供了丰富的应用程序供测试或其它目的使用。

4. MASM 8.0

MASM是微软公司开发的汇编开发环境,拥有可视化的开发界面,使开发人员不必再使用DOS环境进行汇编的开发,编译速度快,支持80x86汇编以及Win32Asm是Windows下开发汇编的利器。它与windows平台的磨合程度非常好,但是在其他平台上就有所限制,使用MASM的开发人员必须在windows下进行开发。8.0版本在编译OpenSSL的时候不容易出错。

用winrar解压缩得到:继续用winrar解压缩 得到:vc_继续用winrar解压缩vc_得到:FL_ml_exe__..... (很长的文件名,省略),将这个文件重命名为测试得到的 , 应该显示:

Microsoft (R) Macro Assembler Version 8.00.50727.104将 拷贝到工作目录,即可正常使用。

5.

是Microsoft Visual Studio编程数据库支持相关文件。该控件可以保证的运行,放于内存或系统Path中,Windows XP/WIN7系统,则复制到C:WindowsSystem32目录下。

6. 和非必要软件是其他方式的编译,如需要可放于内存或系统Path中。

Linux下需要用到的软件

Linux下只用到openssl软件

二 软件安装

Windows下安装

1. 常规方式安装好Perl和VC++6.0,首先要保证系统Path中必要程序的存在,(),,,和等,运行确保Perl安装成功(将这些软件的所在文件地址放到系统环境变量path中,如在D:perl下,path=xxxxxxxxx; D:perl;就ok了)

2、perl Configure VC-WIN32 -DOPENSSL_USE_IPV6=0

禁用IPV6,避免出现NMAKE : fatal error U1077: 'cl' :

return code '0x2'错误

3、运行“CMD”命令,进入MS-DOS,在perl安装目录的eg文件夹下确认Perl是否正常安装了:

cd C:Perleg

在该目录下执行:perl

若结果显示“Hello from ActivePerl!”,则说明Perl安装成功,可以开始使用Perl的相关命令来进行OpenSSL的安装了

4、初始化VC++6.0 环境变量

找到vc++ 6.0的安装目录下的VC98Bin执行如下的命令:

cd C:Program FilesMicrosoft Visual StudioVC98Bin

5、正式开始安装OpenSSL(需进入到OpenSSL所在目录)

⑴执行Configure命令(配置编译参数,对编译环境进行基本的配置):

perl Configure VC-WIN32

⑵生成配置文件

运行msdo_ms命令

如果需要其他方式进行编译,则分别运行:

msdo_masm

msdo_nasm

⑶开始进行编译

nmake -f

其中可能出现各种错误,可参照以下情况进行相关的处理:

/zhangyang0402/archive/2010/05/09/

/zhangyang0402/archive/2010/05/10/

/html/03/

⑷进行测试

nmake -f test

如果出现以上提示("passed all tests")则说明成功

注意:如果编译成功,最后的输出结果都在out32dll目录下:包括可执行文件、两个dll和两个lib文件: ,,,,;把他们放到PATH环境变量对应的一个目录里就可以了。

Linux下安装

官网下载程序/

gunzip -d (也可以从网上下载下来再解压)

tar -xf (解压缩文件)

mv openssl.0.9.6 openssl (将openssl.0.9.6文件夹下的内容移动到openssl文件夹下)

cd openssl (进入openssl文件夹)

./config --prefix=XXXXX --openssldir=XXXXXXXX (安装openssl,这里

prefix是你想安装openssl的地方, openssldir就是你tar开的openssl源码的地方。

make

make test

make install

三 openssl命令

生成私钥

openssl genrsa -des3 –out 2048

输入后需要输入两次密码

Openssl可以将这个文件中公钥提取出来:

Openssl rsa –in –pubout –out private_

生成CSR文件 Generate the CSR

openssl req -config c: -new -key

-out (注意:windows下要加-config

c: linux下不用加这个代码)

接着还要填写包括国家(中国添CN)、省份、所在城市、单位名称、单位部门名称(可以不填直接回车)。除国家缩写必须填CN外,其余都可以是英文或中文。

其后还要输入要申请SSL证书的域名,如果需要为申请SSL证书就不能只输入。SSL证书是严格绑定域名的。

最后是Email、口令(challenge password)和公司名称,建议不要输入,直接回车即可。

或者

生成私钥:

openssl genrsa -out 2048(无密码的)

生成公钥:

openssl rsa -in -out -pubout

查看密钥信息:

openssl rsa -noout -text -in privatekey_

加密解密文件

用生成的公钥加密文件:

openssl rsautl -encrypt -in -inkey

-pubin -out

用生成的私钥解密文件:

openssl rsautl -decrypt -in -inkey

-out

计算数据的消息摘要:

openssl dgst -sha1 -out

用私钥给消息摘要签名:

openssl rsautl -sign -inkey -in

-out

四 实例

一、发送方A:

生成私钥:

OpenSSL> genrsa -passout pass:123456 -out

1024

生成公钥:

OpenSSL> rsa -passin pass:123456 -pubout -in

-out

用B的公钥加密数据:

OpenSSL> rsautl -encrypt -pubin -inkey -in

-out

计算数据的消息摘要:

OpenSSL> dgst -sha1 -out

用A的私钥给消息摘要签名:

OpenSSL> rsautl -sign -inkey -in -out

将和发送给接收方B

二、接收方B

生成私钥:

OpenSSL> genrsa -passout pass:654321 -out

1024

生成公钥:

OpenSSL> rsa -passin pass:654321 -pubout -in

-out

用B的私钥解密数据:

OpenSSL> rsautl -decrypt -inkey -in

-out

计算的信息摘要:

OpenSSL> dgst -sha1 -out

用A的公钥解密数字签名:

OpenSSL> rsautl -verify -pubin -inkey -in

-out

最后比较: 和内容完全相同:

SHA1()=

ad6910d33d5f96cbd7b9b3378107b8b04ba1c138

五 遇到的问题及解决方法

1. 在linux下安装openssl,从网页直接下载存在什么地方?

存放在/home/user(此处是用户名)/下载.

2. 在linux下如何进入root?

命令:sudo –i然后会提示输入密码。

3. Linux下openssl安装到了社么地方?

Linux下程序一般装在/usr文件夹下,这里注意./config

--prefix=XXXXX --openssldir=XXXXXXXX 安装地址是自己选择的。

4. 如何生成带密码的密钥?

openssl genrsa -des3 –out 2048(带-des3的就是需要密码的)。

5. 加密解密文件的问题、

-encrypt只能用公钥加密,-decrypt只能用私钥解密,只能用公钥加密文件私钥解密文件,否则会解密出错,私钥可以用来对信息摘要签名。

6. 生成CSR文件问题?

在windows下命令一定要带-config

c:(所在的位置)Linux下可以不带这个。

7. windows下运行cmd输入openssl提示命令不存在?

在out32dll目录下:包括可执行文件、两个dll和两个lib文件: ,,,,;把他们放到PATH环境变量对应的一个目录里就可以了。

参考文献:

1. Windows环境中OpenSSL的安装/download/douhui2002/2873355

2. Linux下OpenSSL 安装图文详解/Linux/2011-01/

3. 《OpenSSL 与网络信息安全——基础、结构和指令》王志海

中国OpenSSL 专业论坛

4. OpenSSL命令行工具验证数字签名

/


本文标签: 编译 安装 文件 进行 目录