在之前的工作中搭建了owncloud私有云基于apache双向验证的配置,完成之后测试web端是正常的,但是owncloud的客户端连不上web服务器,经过查阅资料发现,之所以web端能正常使用是因为在浏览器中导入了管理员签发的证书,客户端发起请求的时候带着证书进行验证,验证通过后才能访问web服务。但是客户端与web端连接时并没有带着证书去进行校验,所以导致总是提示ssl握手失败。
经过与领导协商,最终采用单项加密的方式进行访问,通过实验验证,客户端也能正常联通web服务器,邮件功能也配置完成。
前面配置apache和php的操作和双向加密的帖子是一样的,这里就不在赘述了。这里就说一下区别吧!
一、由于单项加密,所以签发证书的方式有所不同
mkdir -p /etc/apache2/ssl
openssl req -new-x509 -days 365-nodes -out/etc/apache2/ssl/owncloud.pem -keyout /etc/apache2/ssl/owncloud.key
Generating a 2048 bit RSA private key
.........................+++
..................................................................+++
writing newprivate key to '/etc/apache2/ssl/owncloud.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a DistinguishedNameor a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
CountryName(2 letter code)[AU]:IN
StateorProvinceName(full name)[Some-State]:AP
LocalityName(eg, city)[]:HYD
OrganizationName(eg, company)[InternetWidgitsPtyLtd]:ExamplePvt.Ltd
OrganizationalUnitName(eg, section)[]:IT
CommonName(e.g. server FQDN or YOUR name)[]:example.com
EmailAddress[]:[email protected]
然后修改apache虚拟主机的配置文件
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
RewriteEngine on
ReWriteCond %{SERVER_PORT} !^443$
RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L]
<Directory/var/www/html/owncloud>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted (这里的配置根据日志情况而定,如果有报错,把这行注释掉)
</Directory>
</VirtualHost>
<VirtualHost *:443>
ServerName example.com
ServerAlias www.example.com
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/owncloud.pem
SSLCertificateKeyFile /etc/apache2/ssl/owncloud.key
DocumentRoot /var/www/html/owncloud/
<Directory/var/www/html/owncloud>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted(这里的配置根据日志情况而定,如果有报错,把这行注释掉)
</Directory>
</VirtualHost>
重启apache后访问成功。
二、客户端安装非常简单,从官方网站上下载与本机相应的版本之后,安装即可。官网地址https://owncloud.org
客户端安装完成后会弹出一个对话框如图:
填写好服务器地址后,下一步
这里填写好在web端配置好的用户名密码后下一步
在这里可以根据自己的需求进行配置,本地文件夹放置在自己用着舒服的路径,进行和服务器同步。完成后web端的内容就都下载到本地文件夹了。
三、邮件配置
Owncloud支持密码找回,支持以链接的方式发送邮件,但是前提是需要配置好邮件服务。用管理员账号登陆系统,在右上角管理员名字的下拉菜单-个人中填写邮件地址。我是基于网易126邮件服务配置的,所以这里写一个126的邮箱。在下拉菜单-管理中找到电子邮件服务器这一项,然后按如下信息填写
图很这两部分信息一样都是邮箱@符号前面的信息。配置好后点击发送邮件,就能在你126的想中看到测试信息了。
四、数据备份
owncloud的资料都放在owncloud目录下的data目录中,所以备份这个目录即可,脚本如下
#!/bin/bash
bakTime=`date +%Y%m%d%H`
/usr/bin/scp -r /usr/local/apache2/htdocs/owncloud/data /var/owncloudbackup/data.$bakTime
cd /var/owncloudbackup
tar -czf data.$bakTime.tar.gz data.$bakTime
rm -rf data.$bakTime
find /var/owncloudbackup -name "data.*" -mtime +6 -exec rm -f {} \;
这个脚本是备份data目录数据,并且将其压缩成tar.gz格式,数据保留7天的
参考资料:
http://sharadchhetri.com/2014/07/21/setup-self-signed-ssl-certificate-owncloud-6-ubuntu-14-04-lts-server/