采用mod_ssl让Apache更加安全
业界加密 TCP/IP 网络产品的标准是 SSL ,对于 Internet 上普遍使用的超文本传输协议(HTTP)而言,其加密后的协议称为 HTTPS,缺省采用 443 端口。HTTPS 数据是加密以后传输的,因此能有效保护在网络上传输的个人隐私信息。
第一步:下载所需的软件并解开到 /usr/local/src 目录
Apache 1.3.24
Mod_ssl 2.8.8-1.3.24
Openssl-0.9.6c
每个 mod_ssl 的版本和特定的 Apache 版本有关,因此要下载相对应的 mod_ssl 版本。
第二步:编译和安装
安装 OpenSSL 到 /usr/local/ssl:
# pwd
/usr/local/src/openssl-0.9.6c
# ./config
# make
# make test
# make install
安装 mod_ssl,编译进 Apache 的源码树:
# pwd
/usr/local/src/mod_ssl-2.8.8-1.3.24
# ./configure --with-apache=/usr/local/src/apache_1.3.24 \
--with-ssl=/usr/local/ssl
以 DSO 方式编译 Apache:
# pwd
/usr/local/src/apache_1.3.24
# ./configure --prefix=/usr/local/apache --enable-rule=SHARED_CORE \
--enable-module=ssl --enable-shared=ssl
# make
创建 SSL 证书
在生产环境中,证书需要从商业的认证权威机构或者从内部的 CA 得到。
执行下面的步骤生成假证书:
# pwd
/usr/local/src/apache_1.3.24
# make certificate TYPE=custom
生成证书时会提示两遍下面的信息:<> 内为示范数据。
第一遍:
Country Name (2-letters)
State or Province Name
Locality Name
Organization Name
Organizational Unit Name
Common Name
Email Address
Certificate Validity <365>
第一遍会产生一个假的,用于测试的 CA。"Common Name" 可以为任意文本。
第二遍:
Country Name (2-letters)
State or Province Name
Locality Name
Organization Name
Organizational Unit Name
Common Name
Email Address
Certificate Validity <365>
第二遍产生的是实际可用的证书,能被商业机构或者内部 CA 认证, "Common Name" 为 Web 服务器的主机名。
安装并运行 Apache
# pwd
/usr/local/src/apache_1.3.24
# make install
启动 Apache ,并测试
# pwd
/usr/local/apache/bin
# ./apachectl stop
# ./apachectl startssl
在浏览器上检查 http://yourdomain.com 和 https://yourdomain.com