![[ 永远的UNIX::UNIX技术资料的宝库 ]](/images/title.gif)
|
| 首页 > 网络管理 > 互联网技术 > 正文 |
 |
| Web服务器(五)为Apache增加SSL安全保护 |
| 本文出自:www.computerworld.com.cn 作者: 联想电脑公司软件事业部 汤海京 (2002-02-20 07:15:00) |
|
Netscape公司提出的安全套接层(Secure Sockets Layer)的概念,简称SSL。顾名思义,这是一个建立在Socket层的安全协议,它屏蔽了高层协议如telnet、ftp、http的区别,把安全建立在了传输之上。目前该协议以被广泛采纳,它所定义的很多功能都成了下一代IP协议IPV6的一部分。 |
|
http://www.tux.org/pub/net/apache/dist/apache_1.3.17.tar.gz |
|
2. openssl 0.9.6 要用他来生成密钥和签署证书 |
|
http://www.openssl.org/source/openssl-0.9.6.tar.gz |
|
http://www.modssl.org/source/mod_ssl-2.8.0-1.3.19.tar.gz |
|
tar zxvf openssl-0.9.6.tar.gz |
|
cd /usr/local/openssl-0.9.6 |
|
./config --prefix=/usr/local/openssl |
|
#注意,这里是 config 而不是 configure。 |
|
tar zxvf mod_ssl-2.8.0-1.3.19 |
|
cd /usr/local/mod_ssl-2.8.0-1.3.19 |
|
./configure --with-apache=../apache_1.3.19 |
|
cd /usr/local/apache_1.3.19 |
|
SSL_BASE=../openssl-0.9.6 \ |
|
./configure --prefix=/usr/local/apache_1.3.19 \ |
|
make certificate TYPE=custom |
|
说明:这一步要生成你自己的 CA (如果你不知道,我也不能细说了,简单地说就是认证中心),和用它来为你的服务器签署证书。 |
|
Country Name: cn 国家代码,两个字母 |
|
State or Provice name: An Hui 省份 |
|
Locality Name: Bengbu 城市名 |
|
Organization Name: Home CA 组织名,随便写吧 |
|
Organization Unit Name: Mine CA |
|
Email Address: sunstorm@263.net 我的Email |
|
Certificate Validity: 4096 四千多天,够了吧 |
|
不过注意 Common Name是你的网站域名,如 www.mydomain.com |
|
Certificate Validity不要太大,365就可以了。 |
|
为你的 ca.key 和 server.key 加密,要记住pass phrase。 |
|
vi /usr/local/apache/conf/httpd.conf |
|
修改BindAddress 和 ServerName |
|
如果要改变 DocumentRoot 要记得把httpd.conf里SSL Virtual Host Context部分的DocumentRoot设定也改掉。 |
|
SSLCertificateFile和SSLCertificatKeyFile的设定也在SSL Virtual Host Context部分。 |
|
SSLCertificateFile /usr/local/apache/conf/ssl.crt/server.crt |
|
SSLCertificateKeyFile /usr/local/apache_1.3.19/conf/ssl.key/server.key |
|
要注意ssl.key ssl.crt等目录和文件的权限! |
|
所有的key,csr,crt,prm文件都应该设为 400 属性! |
|
虽然在安装MOD_SSL时已经使用 make certificate 命令建立了服务器的证书签名,但是有时你可能需要改变它。 |
|
当然有很多自动的脚本可以实现它,但是最可靠的方法是手工签署 |
|
证书。首先我假定你已经安装好了openssl和MOD_SSL,如果你的 |
|
openssl安装时的prefix设置为/usr/local/openssl,那么 |
|
把/usr/local/openssl/bin加入执行文件查找路径。还需要MOD_SSL |
|
源代码中的一个脚本,它在MOD_SSL的源代码目录树下的pkg.contrib目 |
|
录中,文件名为 sign.sh。将它拷贝到 /usr/local/openssl/bin 中。 |
|
openssl genrsa -des3 -out ca.key 1024 |
|
系统提示输入 PEM pass phrase,也就是密码,输入后牢记它。 |
|
生成 ca.key 文件,将文件属性改为400,并放在安全的地方。 |
|
openssl rsa -noout -text -in ca.key |
|
利用 CA 的 RSA 密钥创建一个自签署的 CA 证书(X.509结构) |
|
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt |
|
Country Name: cn 两个字母的国家代号 |
|
State or Province Name: An Hui 省份名称 |
|
Locality Name: Bengbu 城市名称 |
|
Organization Name: Family Network 公司名称 |
|
Organizational Unit Name: Home 部门名称 |
|
Common Name: Chen Yang 你的姓名 |
|
Email Address: sunstorm@263.net Email地址 |
|
生成 ca.crt 文件,将文件属性改为400,并放在安全的地方。 |
|
openssl x509 -noout -text -in ca.crt |
|
首先为你的 Apache 创建一个 RSA 私用密钥: |
|
openssl genrsa -des3 -out server.key 1024 |
|
生成 server.key 文件,将文件属性改为400,并放在安全的地方。 |
|
openssl rsa -noout -text -in server.key |
|
用 server.key 生成证书签署请求 CSR. |
|
openssl req -new -key server.key -out server.csr |
|
至于 extra attributes 不用输入。 |
|
openssl req -noout -text -in server.csr |
|
如果你的apache编译参数prefix为/usr/local/apache, |
|
那么拷贝server.crt 和 server.key 到 /usr/local/apache/conf |
|
SSLCertificateFILE /usr/local/apache/conf/server.crt |
|
SSLCertificateKeyFile /usr/local/apache/conf/server.key |
|
可以 apachectl startssl 试一下了。 |
|
cd /usr/local/apache_1.3.19 |
|
提示输入pass phrase(就是你前面输入的,不知道你还记不记得) |
|
在IE里输入https://192.168.0.1/ 试试,注意是https而不是http! |
|
用电子认证服务器,可以进行公共密钥认证的管理、签署和废止。她使用的是X.509标准。 |
|
使用电子认证服务器,就可以自己管理公共密钥的认证,而不用依赖国外的CA服务中心。我们建立一个认证服务中心,就是为了能在我们的中国多媒体公众信息网上使用电子认证,以保证重要信息的安全。同时扩展该网的应用范围,把它建设成一个高速有效的企业单位联网平台。 |
(http://www.fanqiang.com)
进入【ChinaUnix.net论坛】
|
|
| 相关文章 |
Web服务器(四)Linux下Apache、php3、MySQL的整合 (2002-02-20 06:15:00) Web服务器(三)Apache+Jserv整和 (2002-02-19 07:15:00) Web服务器(二)Tomcat服务器 (2002-02-19 06:15:00) Web服务器(一)Apache服务器 (2002-02-18 07:15:00) CGI与WEB服务器的响应头 (2001-08-22 10:00:00) 构建SCO UNIX下的Web服务器 (2001-06-30 23:41:46) 使用反向代理技术保护Web服务器 (2001-05-10 11:06:43)
|
|
|
|
 |
★ 樊强制作 欢迎分享 ★ |