1.建立自己的CA
在openssl安装目录的misc目录下(或者在apps目录下)运行dos命令:
perl ca.pl –newca
出现提示符时,直接回车。 运行完毕后会生成一个demonCA的目录,里面包含了ca证书及其私钥。
2. 生成客户端和服务端证书申请:
运行指令:
openssl req -newkey rsa:1024 -out req1.pem -keyout sslclientkey.pem
此时遇到错误:unable to load config info from c:\openssl\dir\ssl\openssl.conf
解决方法:在 c:\openssl\dir中新建文件夹ssl,将dir文件夹中的openssl文件(xp系统中标注的时快速拨号文件)移入到ssl文件中。
根据提示(enter pem pass phrase)
openssl req -newkey rsa:1024 -out req2.pem -keyout sslserverkey.pem
openssl req -newkey rsa:1024 -out req2.pem -keyout sslserverkey.pem
这个过程中,需要输入两个文件的私钥。
在输入证书信息时,可以事先在配置文件中设定默认值。
3.签发客户端和服务端证书
openssl ca -in req1.pem-out sslclientcert.pem
openssl ca -in req2.pem -out sslservercert.pem
4.运行ssl服务端和客户端
openssl s_server -cert sslservercert.pem -key sslserverkey.pem -CAfile demoCA/cacert.pem -ssl3
openssl s_client -ssl3 -CAfile demoCA/cacert.pem
此时出现错误:PEM_read_bio: no start line: ./crypo/pem/pem_lib.c:650 :Excepting: TRUSTED CERTIFICATE
原因:打开服务器和客户端证书,发现里面没有内容。原因是cacert.pem中的内容与生成证书申请中的内容不一致。
解决问题后,可以分别运行服务端程序和客户端程序。在客户端程序输入数据,服务器端可以接收,并且打印在屏幕上。