在8.04 server中配置Apache的SSL/TSL

Web、Mail、Ftp、DNS、Proxy、VPN、Samba、LDAP 等基础网络服务
回复
布衣
帖子: 54
注册时间: 2008-02-22 16:20

在8.04 server中配置Apache的SSL/TSL

#1

帖子 布衣 » 2008-07-30 10:14

费了点劲(可见拙作在8.04 server中安装Mod Security 2)把LAMP装好后,又安装了Subversion,很简单:

代码: 全选

sudo apt-get install subversion
为了从apache通过web dav访问subversion

代码: 全选

sudo apt-get install libapache2-svn
然后对subversion作配置,具体的可参考subversion wiki,更详细的请参考subversion官方向导

都完成之后,从http://localhost/svn/project可以看到subversion的内容了,用户鉴权视具体配置而定,如果采用了basic password验证的方式,由于http是明文传送,甚不安全。那就再配上SSL吧。

步骤其实也很简单:
apt-get自动安装的apache2里其实已经包含了mod_ssl,但没有激活,所以我们先激活它

代码: 全选

a2enmod ssl
其实就等于

代码: 全选

sudo ln -s /etc/apache2/mods-available/ssl.load /etc/apache2/mods-enabled
sudo ln -s /etc/apache2/mods-available/ssl.conf /etc/apache2/mods-enabled
然后确认一下/etc/apache2/ports.conf里包含有"Listen 443"之类的字段
接下来就是配置证书,比较推荐使用apache2-ssl-certificate脚本命令,在Ubuntu 7.04以后至今似乎该命令消失了,不要紧,我们自己动手写:
编辑当前用户的.bashrc

代码: 全选

gedit ~/.bashrc
新增一条

代码: 全选

alias apache2-ssl-certificate='sudo /usr/sbin/make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem'
重新开个命令窗口,新增的apache2-ssl-certificate就可以使用了,但是且慢,还要改一个地方

代码: 全选

gedit /usr/sbin/make-ssl-cert
把第118行的

代码: 全选

openssl req -config $TMPFILE -new -x509 -nodes -out $output -keyout $output > /dev/null 2>&1
改为

代码: 全选

openssl req -config $TMPFILE -new -x509 -nodes -out $output -keyout $output -days 3650 > /dev/null 2>&1
这样一来将来生成的证书有效期从默认仅仅1个月延长到了10年,:)
另外上面我们自己写的alias命令中,证书将被放在/etc/apache2/ssl目录中,如果该目录不存在,新建一个

代码: 全选

sudo mkdir /etc/apache2/ssl
现在可以生成证书了

代码: 全选

apache2-ssl-certificate
按提示填写相应内容至完成
剩下的工作就是配置站点了

代码: 全选

sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/ssl
编辑一下

代码: 全选

sudo gedit /etc/apache2/sites-available/ssl
其中的

代码: 全选

NameVirtualHost *
换为

代码: 全选

NameVirtualHost *:443
其中的

代码: 全选

<VirtualHost *>
换为

代码: 全选

<VirtualHost *:443>
在</VirtualHost>之前加上(之所以仅仅加上这两行是因为在/etc/apache2/mods-available/ssl.conf里已经有很多关于ssl的global配置了,当然用户也可以酌情修改)

代码: 全选

SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.pem
把站点跑起来

代码: 全选

a2ensite ssl
大功告成,重新启动apache2

代码: 全选

sudo /etc/init.d/apache2 restart
试一试https://localhost/svn/project,ie会弹出security alert的窗口,ff会显示是否添加exception的信息,一切正常,因为我们用的是自认证的方式,浏览器不认识CA,呵呵。但SSL已经起作用了!
回复