您的位置:首页 > 运维架构

win32编译openssl并生成C/S模式的证书

2011-12-29 16:46 477 查看
1. 编译OpenSSL

1.1 安装Perl环境支持,这里安装的是ActivePerl-5.6.1.629-MSWin32-x86-multi-thread[可能需要手动配置环境变量 如D:/perl/bin]

1.2 打开控制台程序,在openssl解压后的目录下执行Perl Configure VC-WIN32命令,注意,一定要在这个目录下执行该命令,否则找不到Configure文件,当然,你也可以指定完整的Configure文件路径。顺利通过。

1.3 根据openssl的帮助说明,在解压目录下执行ms\do_masm(和ms_\do_ms)命令,成功通过。[这两个步骤不能颠倒,否则会报错]

1.4 配置VC环境变量,我在相同的控制台程序下转到VC所在目录下的vc98\bin目录,执行vcvars32批处理命令,设置VC的环境变量,然后再转到openssl解压包的根目录下。

1.5 在openssl解压目录下执行nmake -f ms\ntdll.mak,如果没有错误,就完成编译了。输出的文件在out32dll里面,包括应用程序的可执行文件、两个Lib文件和两个dll文件。

2. 利用OpenSSL生成C/S模式的证书

C/S模式证书的生成步骤:

一、服务器端

1.生成服务器端的私钥:

Openssl genrsa -des3 -outserver.key 1024

2.生成服务器端证书签名请求文件 csr

Openssl req -configC:\openssl\apps\openssl.cnf -new -key server.key -out server.csr

[这里输入的密码是openssl]

【提示】openssl rsa -in server.key -out server.key

以后可以通过此命令去除key文件的密码因为当HTTPS启动apache daemon时,总提示输入密码,很烦人,影响开机自动启动服务

二、客户端

1.客户端也同样生成key和csr文件

Openssl genrsa -des3 -outclient.key 1024

Openssl req -new -keyclient.key -out client.csr

三、生成CA证书文件:

1.首先生成CA的key文件:

openssl genrsa -des3 -out ca.key 1024

2.生成CA自签名文件:

Openssl req -new -x509 -keyca.key -out ca.crt [-days 365]

四、利用CA证书进行签名:

用生成的CA证书为server.csr,client.csr 文件签名,利用openssl 中附带的CA.pl文件

1.ca.pl -newca 在提示输入已有的证书文件时,输入上面已生成的ca.crt证书文件;

2. 生成服务端证书文件

Openssl ca -in server.csr-out server.crt -cert ca.crt -keyfile ca.key [-config C:\openssl\apps\openssl.cnf]



这里提示在./demoCA/newcerts目录下找不到任何crt文件,我们把建立一个demoCA/newcerts目录并把ca.crt复制进来。

再来一次,这时可以看到签名已经成功了:

3. 生成客户端证书文件

Openssl ca -in client.csr-out client.crt -cert ca.crt -keyfile ca.key [-config openssl.cnf]



但是客户端的签名居然没有生成成功:

解决方法:删除上次生成的 demoCA目录下的index.txt文件,新建一个index.txt.

至此,所有的证书文件都生成成功了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: