Pages

Thursday, 29 October 2015

在Ubuntu上配置Apache2的WebDAV功能并添加SSL

之前由于无法忍受OmniGroup Sync死慢死慢的速度,自己在公司内网的服务器上搭建了WebDAV,并映射到公司的公网IP上使用. 现在几乎都是在家办公了,所以需要经常OpenVPN到公司的内网里去登陆服务和调试.家中电脑和手机上都设置的WebDAV地址是公司的公网地址,一旦OpenVPN进公司,OmniFocus就无法同步了.
一开始犯懒,现在随着需要越来越多的时间切入公司内网干活,就越来越厌烦来回切换OmniFocus的同步地址.正好最近把Blog的VPS服务提供商换成了Linode,选了Linode新建立不久的东京机房,速度很不错,在我这里2M的ADSL可以达到400k/s的下载速度,几乎全速.
So,干脆将WebDAV转移到新租的Linode VPS上算了.正好之前配置WebDAV和SSL的时候都是在Apache的官网上胡乱看完胡乱配置成的,这回好好记录下来以便将来翻阅.

Install WebDAV Apache2

  • 安装apache2,php5及相应的模块
1
2
3
sudo apt-get update
sudo apt-get install apache2
sudo apt-get install php5 libapache2-mod-php5
  • 调用需要用到的模块
1
2
sudo a2enmod dav_fssudo
sudo a2enmod dav

Create shared directory

  • 创建需要共享的文件目录
1
2
sudo mkdir /home/users/webdav
sudo chown www-data.www-data /home/users/webdav
  • 创建可以登录的用户和密码
1
2
sudo htpasswd -c /home/users/passwd.dav users
sudo chmod 640 /home/users/passwd.dav

Install SSL Apache2

  • 配置Apache2 SSL:
1
2
sudo a2enmod ssl
sudo openssl req -x509 -newkey rsa:1024 -keyout apache.pem -out apache.pem -nodes -days 999

Virtual Sites SSL Configurations

  • 添加配置文件:
1
vim /etc/apache2/sites-enable/default-ssl
在文件中加入以下内容,请根据你的文件存放目录适当修改路径;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<VirtualHost *:443>
     SSLEngine On
     SSLCertificateFile /etc/apache2/ssl/apache.pem
     DocumentRoot /home/users/webdav
     <Directory /home/users/webdav/>
          Options Indexes MultiViews
          AllowOverride None
          Order allow,deny
          allow from all
     </Directory>
     Alias /webdav /home/users/webdav
     <Location /webdav>
          DAV On
          AuthType Basic
          AuthName "webdav"
          AuthUserFile /home/users/passwd.dav
          Require valid-user
     </Location>
</VirtualHost>
  • 最后重启Apache2
1
sudo /etc/init.d/apache2 restart