传送门:VPS快速完美部署ownCloud/Nextcloud全过程(1)
证书有收费的也有免费的,收费的一般比较昂贵,像我这样自己玩玩用免费的就够了。
我是在阿里云上申请的免费证书,当然,像腾讯云这样的也提供免费证书。
首先将证书文件下载到VPS中。
阿里云所给教程如下
#LoadModule ssl_module modules/mod_ssl.so (如果找不到请确认是否编译过 openssl 插件) #Include conf/extra/httpd-ssl.conf你也可以用下面的命令代替这一步:
a2enmod ssl service apache2 restart
# 添加 SSL 协议支持协议,去掉不安全的协议 SSLProtocol TLSv1 TLSv1.1 TLSv1.2 # 修改加密套件如下 SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4 # 证书公钥配置 SSLCertificateFile cert/public.pem # 证书私钥配置 SSLCertificateKeyFile cert/214067115020415.key # 证书链配置,如果该属性开头有 '#'字符,请删除掉 SSLCertificateChainFile cert/chain.pem保存后重启apache2
使用carbot进行一键部署,首先安装软件源:
$ sudo add-apt-repository ppa:certbot/certbot
$ sudo apt-get update
$ sudo apt-get install python-certbot-apache
执行以下命令,一键部署SSL证书
certbot --apache
重启Apache,可以看到已经能够通过https链接访问Nextcloud了,左上角有了绿色小锁的标志。
'overwrite.cli.url' => 'http://cloud.nosu.win',改为
overwrite.cli.url' => 'https://cloud.nosu.win',
[infobox]HSTS(HTTP Strict Transport Security)国际互联网工程组织IETE正在推行一种新的Web安全协议 HSTS的作用是强制客户端(如浏览器)使用HTTPS与服务器创建连接。[/infobox]
1.在第一行加入
LoadModule headers_module /usr/lib/apache2/modules/mod_headers.so
像这样:
2.在<VirtualHost cloud.nosu.win>和</VirtualHost>之间加入:
<IfModule mod_headers.c> Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains; preload" </IfModule>
像这样:
保存退出,退出后重启Apache服务
service apache2 restart
安装APCu和Memcached
apt-get install php-apcu memcached php-memcached
在nextcloud/config/config.php中加入以下内容
'memcache.local' => '\OC\Memcache\APCu', 'memcache.distributed' => '\OC\Memcache\Memcached', 'memcached_servers' => array( array('localhost', 11211), ),
一个完整的config.php文件示例:
<?php $CONFIG = array ( 'instanceid' => 'ocwFEEGDExfd9', 'passwordsalt' => 'ajfjrgahughurhgodsi', 'secret' => 'N7CzQTEXU5Fefefdf/xaf+3afrggdrtGRergsGVlLPgQzlnVm', 'trusted_domains' => array ( 0 => 'cloud.nosu.win', ), 'datadirectory' => '/cloudserver/data', 'overwrite.cli.url' => 'http://cloud.nosu.win', 'dbtype' => 'mysql', 'version' => '11.0.2.7', 'dbname' => 'db', 'dbhost' => 'localhost', 'dbport' => '', 'dbtableprefix' => 'db_', 'dbuser' => 'db', 'dbpassword' => 'dbpasswd', 'logtimezone' => 'UTC', 'installed' => true, 'memcache.local' => '\OC\Memcache\APCu', 'memcache.distributed' => '\OC\Memcache\Memcached', 'memcached_servers' => array( array('localhost', 11211), ), );
在里面加入以下内容:
'overwrite.cli.url' => 'https://cloud.nosu.win', 'htaccess.RewriteBase' => '/',
这段代码的作用是设置.htaccess生成规则。
2.更新.htaccess文件
使用OCC命令重写.htaccess文件
sudo -u www-data php occ maintenance:update:htaccess .htaccess has been updated
再次刷新页面:
完成index.php的去除