owncloud 开启 ssl 访问

ownCloud 使每个人都有能力创建自己的云服务器,而无需支付服务费用或申请许可。个人云存储提供了更灵活的选择,用户可以完全控制它,而非受制于第三方。这意味着更低的成本,更大的自主性,减少信息外泄风险和广泛的适应性。--wiki

既然是文件服务器,就不得不讨论一下安全性,官方也建议使用https进行访问。由于官方对开启ssl的描述过于简单,所以觉得有必要记录一下。

#新建ssl key和证书存放目录

mkdir -p /home/owncloud/httpd-2.4.20/conf/ssl

#新建key和证书

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /home/owncloud/httpd-2.4.20/conf/ssl/server.key -out /home/owncloud/httpd-2.4.20/conf/ssl/server.crt

#开启相关模块

vi /home/owncloud/httpd-2.4.20/conf/httpd.conf

####
LoadModule ssl_module modules/mod_ssl.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
Include conf.d/*.conf
####

#新建单独配置

vi /home/owncloud/httpd-2.4.20/conf.d/owncloud.conf

####
Listen 443
SSLCipherSuite HIGH:MEDIUM:!MD5:!RC4
SSLProxyCipherSuite HIGH:MEDIUM:!MD5:!RC4
SSLHonorCipherOrder on
SSLProtocol all -SSLv3
SSLProxyProtocol all -SSLv3
SSLPassPhraseDialog  builtin
SSLSessionCache        "shmcb:/home/owncloud/httpd-2.4.20/logs/ssl_scache(512000)"
SSLSessionCacheTimeout  300


   ServerName 127.0.0.1
   Redirect permanent / https://127.0.0.1



    SSLEngine on
    ServerName owncloud.woego.cn:443
    SSLCertificateFile /home/owncloud/httpd-2.4.20/conf/ssl/server.crt
    SSLCertificateKeyFile /home/owncloud/httpd-2.4.20/conf/ssl/server.key

    
      Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains; preload"
    

####

#添加信任IP

vi /home/owncloud/owncloud/config/config.php

####
array (
    0 => '127.0.0.1:80',
    1 => '127.0.0.1:443',
  ),
####

#重启apache

sudo /home/owncloud/httpd-2.4.20/bin/apachectl restart

验证https成功后,可在.htaccess里面加入下面规则,把非http请求重定向到https:

vi .htaccess

####
#http转https
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*) https://xxx.xxx.xxx/$1 [R=301,L] #把"xxx.xxx.xxx"更换成实际域名或IP
####

注意,即使你已经按照上述步骤做了,在你启动ownCloud你仍将看到一条错误消息,指出该证书尚未被受信的机构颁发(那是因为我们创建了一个自签名证书)。您可以放心地忽略此消息,但如果你考虑在生产服务器上部署ownCloud,你可以从一个值得信赖的公司购买证书。

官方帮助文档

消息盒子

# 暂无消息 #

只显示最新10条未读和已读信息