在Openssl适配win2000系统总结一文中,我们已经实现了Openssl库在win2000上的适配。下面就来说一下怎么使用编译好的Openssl库来生成数字证书。(如果要生成pem后缀的证书,请参考Openssl生成pem格式的数字证书(适配win2000)一文)
首先需要使用命令行进入Openssl生成库文件的目录out32dll,然后执行以下操作:
一、服务端
1、创建私钥,密码设置为123456
openssl genrsa -des3 -out server.key 1024
2、创建证书的签名请求
openssl req -new -key server.key -out server.csr -config ../apps/openssl.cnf
二、客户端
1、创建私钥,密码设置为123456
openssl genrsa -des3 -out client.key 1024
2、创建证书的签名请求
openssl req -new -key client.key -out client.csr -config ../apps/openssl.cnf
三、证书签名(CSR文件必须有CA的签名才可形成证书)
1、创建CA的ca.key和ca.crt,密码设置为123456
openssl req -new -x509 -keyout ca.key -out ca.crt -config ../apps/openssl.cnf
2、用生成的CA证书为服务器端server.csr和客户端client.csr文件签名
为服务端签名:
openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config ../apps/openssl.cnf
为客户端签名:
openssl ca -in client.csr -out client.crt -cert ca.crt -keyfile ca.key -config ../apps/openssl.cnf
四、查看证书信息
1、服务端证书信息
2、客户端证书信息
五、验证证书
1、验证服务端证书
2、验证客户端证书
证书验证ok,说明可以正常的使用了。
六、遇到的问题
接下来说一下生成数字证书过程中遇到的问题,主要问题就在 “ 三-2、用生成的CA证书为服务器端server.csr和客户端client.csr文件签名 ” 这一阶段。主要报下面的错误:
分析报错信息:
I am unable to access the ./demoCA/newcerts directory
./demoCA/newcerts: No such file or directory
经过分析,主要存在两个问题:
1、demoCA下不存在newcerts路径,新建一个newcerts文件夹即可
2、打开文件openssl.cnf文件发现如下信息:
需要将 dir=./demoCA 修改为 dir=../apps/demoCA,修改后如下图:
这两个问题解决之后就可以正确的生成数字证书了。