用OPENSSL实现电子商务中的CA认证
Issuer: C=CN, ST=JIANG SU, L=ZHANGJIAGANG, O=FAMILY NETWORK, OU=HOME, CN=TJL/Email=TJL@WX88.NE
Validity
Not Before: Feb 24 14:49:27 2003 GMT
Not After : Feb 21 14:49:27 2013 GMT
Subject: C=CN, ST=JIANG SU, L=ZHANGJIAGANG, O=FAMILY NETWORK, OU=HOME, CN=TJL/Email=TJL@WX88.NET
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public Key: (1024 bit)
Modulus (1024 bit):
00:da:20:09:11:19:1f:12:f0:98:0c:fc:91:ac:3e:
……
22:e1:ca:04:0f:dc:e9:bd:9f
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Subject Key Identifier:
03:B0:14:8C:5D:C6:F8:F4:B0:96:A0:CC:7C:8F:9B:00:BB:78:E6:A6
X509v3 Authority Key Identifier:
keyid:03:B0:14:8C:5D:C6:F8:F4:B0:96:A0:CC:7C:8F:9B:00:BB:78:E6:A6
DirName:/C=CN/ST=JIANG SU/L=ZHANGJIAGANG/O=FAMILY NETWORK/OU=HOME/CN=TJL/Email=TJL@WX88.NET
serial:00
X509v3 Basic Constraints:
CA:TRUE
Signature Algorithm: md5WithRSAEncryption
8d:e8:46:82:40:b4:18:a2:12:9f:7a:66:e5:fc:0c:3f:77:5a:
……
04:13
从上面的输出内容可以看出这个证书基本包含了X.509数字证书的内容,从发行者Issuer和接受者Subject的信息也可以看出是个自签署的证书。
下面创建服务器证书签署请求(使用指令和系统显示信息基本和以上类似):
⑸ 首先为Apache 创建一个 RSA 私用密钥:
# OpenSSL genrsa -des3 -out server.key 1024
这里也要设定口令pass phrase,生成 server.key 文件。
⑹ 用下列命令查看它的内容:
# OpenSSL rsa -noout -text -in server.key
⑺ 用 server.key 生成证书签署请求 CSR:
# OpenSSL req -new -key server.key -out server.csr
这里也要输入一些请求证书的信息,和上面的内容类似。
⑻ 生成证书请求后,下面可以签署证书了,需要用到OpenSSL源代码中的一个脚本 sign.sh,签署后就可以得到数字证书server.crt。
# sign.sh server.csr
⑼ 启动安全Web服务
最后在apache服务器中进行ca认证设置,拷贝server.crt 和server.key到/usr/local/apache/conf
修改httpd.conf 将下面的参数改为:
SSLCertificateFILE /usr/local/apache/conf/server.crt
SSLCertificateKeyFile /usr/local/apache/conf/server.key
可以启动带安全连接的Apache试一下了。
# /usr/local/apache/bin/apachectl startssl
提示输入pass phrase(就是前面为服务器设置的口令)
⑽ 进行安全连接
通过另一台电脑(IP地址为192.168.0.1)的IE浏览器与这台Apache服务器(IP地址为192.168.0.2)连接并且选择https协议,即:https://192.168.0.2:443。出现安全连接警告窗口,因为我的服务器证书是自己手工签署的,不是经过真正的CA颁发的证书,是个无效证书,所以按确定后出现安全证书无效的警告窗口。按“是”继续,出现如图1所示:
注意这里浏览器地址栏内输入的是https而不是http,另外此时在状态栏内出现了一把小锁,这说明SSL协议起作用了,服务器和浏览器之间建立了一个安全连接这样我们使用开放源代码的工具OpenSSL来完成了电子商务的CA认证过程,同时这也只是使用现成的工具来完成的,在实际使用中还要分析它的源代码,修改源代码,来达到自己的安全需要。
4.结束语
SSL是目前国际上流行Web安全工具,它融合了多种安全技术,实现安全的Web通信,必将在国内的安全电子交易领域得到广泛的应用。通过对公开源代码的工具OpenSSL的使用和分析,可以使我们对SSL协议有很好的理解和应用,对研究电子商务中的安全问题有具有特别的理论价值和实用价值。
参考文献:
[1] Alan O Freier,Philip Karlton. The SSL Protocol Version 3.0[J]. Netscape Communications.1996
[2] CCITT.Recommendation X.509:The Directory.Authentication Framework[R].1998
[3] 林 枫主编. 电子商务安全技术及应用 北京:航空航天大学出版社
[4] 易江波,赵战生,阮耀平. SSL及使用SSLeay实现证书的签发和管理 计算机应用研究2001
[5] 韦 卫,王德杰等. 基于SSL的完全WWW系统的研究与实现[J].计算机研究与发展 1999
[6] 唐礼勇,陈钟编写. 电子商务技术及其安全问题. 计算机工程与应用 2000