[ 永远的UNIX::UNIX技术资料的宝库 ]

首页 > 应用专题 > SSL > 正文

Apache + SSL Howto译文(Slackware 10 默认安装环境)

作者:SiegeX slack.linuxsir.org (2005-05-16 14:42:57)

提要:如果你有过在线付费的经历并且发现所有的URL是https://开头,并且在浏览器上有一个小锁头的图标,那就是SSL.

为了能让Apache加入SSL支持我们需要编辑
/etc/apache/httpd.conf 文件并且滚动到文件的最下部。
在这里去掉如下的注释。

把如下行:

#Include /etc/apache/mod_ssl.conf

更改为:

Include /etc/apache/mod_ssl.conf

注意:
如上的处理方法是建立在你的发行版已经安装有mod_ssl和httpd的基础之上的。如果你是从源代码编译安装而来或你的发行版不包括这两个软件包,这篇文章就不适合你啦。

一旦完成上一步之后你需要见到的编辑一下文件

/etc/rc.d/rc.httpd

让apache服务器知道你想开启有SSL支持的服务。

把如下行:

'start')
     /usr/sbin/apachectl start ;;

更改为:

'start')
     /usr/sbin/apachectl startssl ;;

现在所有剩余的工作就设置SSL证书了,如果你不在意非要使用正式的证书的话,slackware自带了一些预设好的证书,我就用这个,但是如果你运行一个真正的生产环境中的web服务器的话,有很可能想付费并且获得一个真正的证书。你也可以选择制作自己的自签名的证书,如果你对这个感兴趣的话,在这篇 Howto文章的最底部有相应的说明。我们仍然运行如下的命令使用预设的证书,当问及是否覆盖时,选择是。

cp /etc/apache/ssl.crt/snakeoil-rsa.crt /etc/apache/ssl.crt/server.crt
cp /etc/apache/ssl.key/snakeoil-rsa.key /etc/apache/ssl.key/server.key

现在所要做的事情就是重新启动apache 服务器了:

/etc/rc.d/rc.httpd restart

如果你想确认SSL现在已经正确的运行了,可以执行如下命令。

netstat -tpan | grep 443

如果一切运行正常,你会得到像下面的输出:

tcp      0      0 0.0.0.0:443     0.0.0.0:*      LISTEN   27426/httpd

如果你没有获得任何的输出,那么无论如何是出错了然后你需要看看
/var/log/apache/error_log
文件啦。

现在SSL就完全建立起来了,下面你将要告诉apache当有人用https://访问的时候应该提供什么内容,这需要通过VirtualHost指令来实现,并且与SSL连接相关的的配置可以在文件
/etc/apache/mod_ssl.conf中找到。默认情况下它是如下样子的,而且你应当需要该其中的一些配置的。



#  General setup for the virtual host
DocumentRoot "/var/www/htdocs"
ServerName new.host.name
ServerAdmin you@your.address
ErrorLog /var/log/apache/error_log
TransferLog /var/log/apache/access_log

最后,如果你想制作你自己的自签名的证书,不使用slackware预先提供的,其实也是很容易的。我从http://www.apache-ssl.org/#FAQ 找到如下命令:

第一步,创建key和request:

 openssl req -new > new.cert.csr

第二步,从key中删除passphrase(可选):

 openssl rsa -in privkey.pem -out new.cert.key

第三步,把request转换成signed sert:

  openssl x509 -in new.cert.csr -out new.cert.cert -req -signkey new.cert.key -days 1825

第四步,把cert和key文件拷贝到适当的位置。

 cp new.cert.cert /etc/apache/ssl.crt/server.crt
 cp new.cert.key /etc/apache/ssl.key/server.key

一些注释:
当在第一步被问及Common Name的时候,请输入你的web服务器的完全限定域名(FQDN)例如: www.mywebserver.com

当在第一步被问及A challenge password的时候,直接按回车继续。

如果你没有在第二步从key中把passphrase删除,那么每次你运行

/etc/rc.d/rc.httpd start

启动服务器的时候你都要输入密码。这也就意味着如果你的服务器因为某些原因重新启动了,除非你在服务器旁手动敲入了密码,否则你的web服务器就不会启动。


(http://www.fanqiang.com)

原文链接:http://slack.linuxsir.org/main/?q=node/126

 相关文章
Web服务器(五)为Apache增加SSL安全保护 2002-02-20 07:15:00
Apache、SSL、MySQL和PHP平滑无缝地安装 2001-04-19 10:00:09
用SSL构建一个安全的Apache 2001-04-19 17:04:46
OpenSSL FAQ 2001-04-21 17:39:33
SSL原理解密 2001-06-08 12:10:00
Apache安装MOD_SSL的补充--手工签署证书的方法 2001-07-22 13:05:00
Linux OPENSSL服务器 2001-11-06 09:00:01
安全连接方式ssl 2005-03-30 13:40:46
FreeBSD下利用ACI/SSL安全使用OpenLDAP 2005-04-14 12:07:01

★  感谢所有的作者为我们学习技术知识提供了一条捷径  ★
www.fanqiang.com