构建安全的e-commerce服务器(2)
三.SSL
Internet是一个开放的系统。大部分的网络通信都是不安全的,就好比传统邮政中的明信片邮寄,恶意用户可以偷看明信片内容、篡改和伪造身份发送。
SSL,即Secure Socket Layer,是工作在网络层与会话层之间的协议,它在TCP/IP和HTTP之间增加了一个加密层,主要是使用公开密钥体制和X.509数字证书技术保护信息传输的机密性和完整性,它不能保证信息的不可抵赖性,主要适用于点对点之间的信息传输,常用于Web Server方式。
电子商务系统中,最常用的加密协议是SSL和SET。SET是在应用层,而SSL是在会话层,对工作在HTTP协议以上的用户而言,加密是透明的。关于SSL和SET的比较,请参考其他文章。事实上,最容易实现的方案就是采用SSL,新推出的TLS也未被广泛使用。
四.Apache+SSL
好,下面将给出一些实践内容,介绍如何安装一个安全的Apache SSL Server。首先,必须保证网络和操作系统的安全性:安装了防火墙和路由器并且配置正确,操作系统已打补丁且做了安全优化,系统日志的单独存放等等。
Apache服务器本身不支持SSL,我们有很多选择可以完成Apache/SSL的合并:(1)Apache-SSL计划(http://www.apache-ssl.org),它集成了Apache服务器和SSL;(2)第三方的SSL补丁,例如Covalent Networks的Covalent SSL (http://www.covalent.com);(3)mod_ssl,它是通过可动态加载的模块mod_ssl(http://www.modssl.org)来支持SSL;(4)基于Apache并集成了SSL能力的商业Web服务器,然而使用这些商业Web服务器主要是北美,这是因为在那里SSL使用的公开密钥的算法具备专利权,例如RedHat Secure Server(http://store.redhat.com/commerce/)。
我们选择第三种方法,这样我们就使用Apache的最新版本。去三个站点下载以下软件包:
Apache:http://www.apache.org
OpenSSL:http://www.openssl.org
mod_ssl:http://www.modssl.org
下面是安装步骤:
A. 准备
解开apache、openssl和mod_ssl到/usr/local/src目录下。
B. 编译Openssl
切换到目录/usr/local/src/openssl-0.9.6:
(1)./Configure linux-elf threads –fPIC –prefix=/usr/local/ssl
(2)make
(3)make test
(4)make install
C. 配置mod_ssl
进入目录/usr/local/src/mod_ssl-2.8.0-1.3.17执行以下命令:
./configure --with-apache=../apache_1.3.17
D. 配置Apache
进入目录/usr/local/src/apache_1.3.17:
1. export SSL_BASE=../openssl-0.9.6
2. ./configure \
--prefix=/usr/local/apache \
--enable-module=ssl \
--disable-rule=SSL_COMPAT \
--enable-module=rewrite \
--enable-module=auth-digest \ # use MD5 hashes for HTTP
# basic authentication
--enable-module=vhost_alias \ # enable virtual hosts
--enable-module=log_referer \ # enhance logging
--disable-module=userdir \ # not used in e-commerce apps
--disable-module=autoindex \ # do not list directories
3. make
4. make certificate TYPE=dummy
5. make install
6. /src/httpd –l
现在Apache已经安装好了,可以通过httpd –l来查看安装的模块。
- 最新评论