二、如何构建一个基于SSL的网站
首先需要安装Web服务器程序,可以选择微软的IIS或者Tomcat。
接着,需要下载OpenSSL应用程序,并且在VC环境下编译通过。
OpenSSL是开放源代码的应用程序,它不仅实现了SSL协议,而且实现了各种加密算法、证书的生成等功能。我们可以在Dos窗口下,使用命令行的方式利用其提供的功能来实现一个CA,这样我们就可以来生成客户证书。
这时,准备工作就完成了,接下来我们开始建立一个基于SSL的网站。我们的网站建立成功后,用户访问网站的方式将发生改变,不是通过Http,而是通过Https,s表示安全的意思。
1、建立CA中心
使用OpenSSL,我们可以自己承担其CA中心的职责:生成数字证书。
首先,在C盘建立一个新的目录CARoot。其目录结构如下图:
certs目录:用来存放经过CA签发的数字证书
crl目录:用来存放证书撤消列表
private:用来存放数字证书对应的私钥
newcerts:用来存放新生成的数字证书
(1)编辑用于生成RSA密钥对的随机数文件
C:\CARoot>edit private\.rnd
(2)生成CA根证书的RSA密钥文件
C:\CARoot>genrsa ?out private\ca.key ?rand private\.rnd 2048
如果想为生成的私钥文件加上密码保护,可以使用下面的命令
C:\CARoot>genrsa ?out private\ca.key ?rand private\.rnd ?des3 2048
(3)生成CA的根证书
C:\CARoot>req ?new ?x509 ?days 3650 ?key private\ca.key ?out private\ca.crt ?
config openssl.
这样,CA的根证书就生成了,以后所有的证书都要经过根证书的签名才有效。接下去,我们就要为网站申请一个服务器证书,为用户申请客户证书。
2、生成服务器证书
(1)用IIS WEB SERVER产生一个证书申请certreq.txt
打开IIS WEB SERVER??站点属性??目录安全性??服务器证书??创建一个新证书??现在准备请求,但稍候发送。
将生成的证书申请文件存放到CARoot目录中。
(2)生成经过CA根证书签名的服务器证书
C:\CARoot>ca ?in certreq.txt ?key private\ca.key ?out newcerts\ServerCert.cer ?policy policy_anything ?config openssl.cnf
3、生成客户证书
(1)生成一个新的RSA密钥对
C:\CARoot>genrsa ?out ClientCert001.key ?rand private\.rnd 2048
(2)生成客户证书
C:\CARoot>req -new -x509 -days 3650 -key ClientCert001.key -out ClientCert001.crt -config openssl.cnf。
(3)使用CA根证书来签名客户证书
C:\CARoot>ca ?ss_cert ClientCert001.crt ?key private\ca.key ?config openssl.cnf ?policy policy_anything ?out signed ClientCert001.cer。
生成的客户证书为ClientCert001.crt,通过这种方式,我们可以给多个用户颁发个人证书。
四、导入证书
1、安装信任的根证书
根证书为ca.cer,在客户端的IE中使用“工具” ??“Internet选项”??“ 内容” ??“证书” ??“导入”,把我们生成的CA根证书导入,使其成为用户信任的CA。
2、导入服务器证书
打开IIS WEB SERVER??站点属性??目录安全性??服务器证书??处理挂起并安装证书??选择生成的服务器证书ServerCert.cer。
3、安装客户证书
将客户的证书转变为pkcs12格式的证书,以便导入到IE中。
C:\CARoot>pkcs12 -export -clcerts -in ClientCert001.crt -inkey ClientCert001.key -out client001.p12
把client001.p12导入到客户端的IE中作为个人证书。
这样,所有试图访问我们的网站的用户都必须拥有我们签发的客户证书,这就杜绝了非法用户的使用。基于SSL,我们可以开展各种各样的安全应用,比如信息发布系统、企业内部网、电子政务等。
【参考文献】
1 杨义先,钮心忻,杨放春,论电子商务的安全性。世界科技研究与发展,1999年03期。
2 Bruce Schneier著,吴世忠等译,应用密码学――协议、算法与C源程序,机械工业出版社。
3 SET Specifications. May 1997.
http://www.setco.org
4 SSL Specifications version 3.0.April 1996.see:
http://www.netscape.com/eng/ssl3/
5 TLS Specifications version 1.0.January 1999.see: RFC 2246.
6 OpenSSL for Windows Developer’s Guide. See:
http://www.trizen.com or
http://www.visualSSL.com