环境:window xp; OpenSSL:0.9.8k;IDE:MS Visual Studio 2008
解压OpenSSL, 在其目录下可以有个INSTALL.W32文件,这个文件就是在windows下的安装说明。用UltraEdit等工具打开它查看安装编译方法。
安装前需要准备的是VS环境和perl环境。vs安装就不说了。perl可以到http://www.activestate.com/ActivePerl去下载安装。注意加入环境变量。
再之后就可以安装了,使用vs提供的控制台安装。否则安装过程中会报出”ml”不是内部或外部命令之类的提示。
打开控制台口依次:
1.输入:perl Configure VC-WIN32
2.使用MASM,输入:ms\do_masm
3.接着输入:nmake -f ms\ntdll.mak 安装
4.输入:nmake -f ms\ntdll.mak test 测试安装是否成功。
最后会显示 all tests passed提示。编译就通过了,在out32dll目录下面就可以看到生成的dll文件和可执行文件。
前文描述了如何在window下按安装openssl后,这里说下如何利用openssl生成证书。
1、 新建工作目录,将openssl安装路径下的apps/CA.pl 和 apps/openssl.cnf(在window中该文件会显示成名为openssl的快速拨号程序)文件复制到该路径。可以修改openssl.cnf文件中的一些参数。启动控制台,执行命令
CA.pl -newca
生成CA工作所需的文件和文件夹。即该目录下新生成的demoCA文件夹。将openssl安装路径下的apps\demoCA\serial文件复制到生成的demoCA文件夹下。
可以略去该步骤,在安装路径\apps下执行后续步骤。
2、 生成根证书和对应的私钥
openssl req -new -x509 -keyout cakey.pem -out cacert.pem -config openssl.cnf
记住输入的pass phrase、国家、省、组织等参数,不能全为空。将生成的cakey.pem放到demoCA/private目录下,将cacert.pem放到demoCA目录下。
注意:在window下需要openssl命令都需要增加-config openssl.cnf参数,防止因找不到配置文件而报错。Linux下不需要该参数。
![Windows下安装OpenSSL+用openssl命令制作生成证书和自签名 - zhuzhu - 五事九思 (大连Linux主机维护)](http://img8.ph.126.net/I0I03GXz2pp-hxsW89wrPQ==/3070891995930590128.jpg)
3、 生成服务证书私钥和证书请求文件
openssl req -newkey rsa:2048 -out newCSR.pem -keyout newKey.pem -config openssl.cnf
如果要生成多个证书私钥对,注意输入Common Name值要不同。如果不是自签名,可将生成的证书请求文件newCSR.pem交由相关组织签发证书。
4、 用根证书签发该服务证书
openssl ca -in newCSR.pem -out newCert.pem -config openssl.cnf
![Windows下安装OpenSSL+用openssl命令制作生成证书和自签名 - zhuzhu - 五事九思 (大连Linux主机维护)](http://img8.ph.126.net/I0I03GXz2pp-hxsW89wrPQ==/3070891995930590128.jpg)
至此,我们生成了根证书和私钥cakey.pem、cacert.pem。用于服务由根证书签发了的证书newCert.pem和对应私钥newKey.pem。openssl编程过程中,需要验证newCert.pem和newKey.pem是否匹配。用根证书cacert.pem验证newCert.pem是否可信。