当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 2 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 在9.04 中配置Apache的SSL/TSL
帖子发表于 : 2009-05-12 9:28 

注册: 2008-10-09 10:04
帖子: 63
送出感谢: 0 次
接收感谢: 0 次
费了点劲(可见拙作在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

现在可以生成证书了
代码:
sudo make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem

按提示填写相应内容至完成
剩下的工作就是配置站点了
代码:
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

我们还要修改default
gedit /etc/apache2/sites-available/default
代码
NameVirtualHost *:80
<virtualhost *:80>


把站点跑起来
代码:
a2ensite ssl

大功告成,重新启动apache2
代码:
sudo /etc/init.d/apache2 restart

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


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 在9.04 中配置Apache的SSL/TSL
帖子发表于 : 2009-06-25 23:05 

注册: 2009-06-25 22:58
帖子: 1
送出感谢: 0 次
接收感谢: 0 次
我按照上面的配置进行了设置,但重启apache是发现如下错误:
~$ sudo /etc/init.d/apache2 restart
* Restarting web server apache2 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
[Thu Jun 25 22:31:46 2009] [warn] NameVirtualHost *:80 has no VirtualHosts
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
[Thu Jun 25 22:31:46 2009] [warn] NameVirtualHost *:80 has no VirtualHosts
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:443
no listening sockets available, shutting down
Unable to open logs
[fail]
然后我用 netstat -tnl查看端口,发现443端口没有打开
:~$ sudo netstat -tnl
激活Internet连接 (仅服务器)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN

请各位帮忙看一下如下这个问题?谢谢!


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 2 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译