** 三. 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 来查看安装的模块。