架设好私有云ownCloud后,下一个需要注意的就是安全问题。从客户端往服务器端传输信息,包括文档、相片等等,是有可能会在用户不在意的时候被截获的。翻译成人话就是:好比我们在大路上运输物资,路人是能看到我们运的是什么的。这时如果我们使用SSL建立隧道,再与自己的服务通讯,这样就会安全很多。人话:好比我们自己挖个隧道再运输物资。
至于具体什么是SSL,各位朋友可自行百度。开源的有OpenSSL,商业的就更多了。下没有免费的午餐,免费使用着OpenSSL的产品同时,为他们做广告是理所当然的,大家可参考一下这篇较为煽情的文章,还有另一篇知乎上关于锤子科技捐款给OpenSSL的讨论。
好进入正题,首先确认一下系统是否已安装OpenSSL:
which openssl
如果有,系统会返回OpenSSL的路径,比如“/usr/bin/openssl
”;如果没有,也不会报错,就直接跳到下一行。
没有的话,就输入命令安装吧:
sudo apt-get install openssl
安装好后先新建一个目录,用来存放证书文件:
sudo mkdir /etc/apache2/ssl
然后生成一个新的证书,假设限期为3年(1095天),证书和密钥存放在刚才新建的目录中
sudo openssl req -x509 -nodes -days 1095 -newkey rsa:2048 -out /etc/apache2/ssl/server.crt -keyout /etc/apache2/ssl/server.key
这时openssl会以交互形式配置证书,终端会显示类似下面的提示:
Generating a 2048 bit RSA private key ............................................+++ .....................+++ writing new private key to '/etc/apache2/ssl/server.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 Distinguished Name or 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. ----- Country Name (2 letter code) [AU]:CN #双字母国别码,按需要填写即可; State or Province Name (full name) [Some-State]:Guangdong #州名或省名; Locality Name (eg, city) []:Guangzhou #地区或城市名; Organization Name (eg, company) [Internet Widgits Pty Ltd]:OrganizationName #组织/公司/机构名; Organizational Unit Name (eg, section) []:DepartmentName #部门名; Common Name (e.g. server FQDN or YOUR name) []:your.domain.name #域名,这个最好填写互联网上能访问的地址; Email Address []:[email protected] #邮箱地址;
完成后,为Apache安装SSL模块:
sudo a2enmod ssl
然后要在Apache配置文件中做一点改动,在sites-enabled目录中放置一个名为000-default-ssl的传送门,指向sites-available目录下的default-ssl:
sudo ln -s /etc/apache2/sites-available/default-ssl /etc/apache2/sites-enabled/000-default-ssl
这时我们来编辑一下这个文件的内容:
sudo nano /etc/apache2/sites-enabled/000-default-ssl
找到下面两行,按上面的路径修改,如果行头有注释用的“#”号,删了:
SSLCertificateFile /etc/apache2/ssl/server.crt SSLCertificateKeyFile /etc/apache2/ssl/server.key
编辑好后按下Ctrl+X
退出nano,nano提示询问是否保存,再按Y
确认保存。
这个时候我们重启Apache:
sudo service apache2 restart
用openssl为Apache配置SSL至此就完成了。现在ownCloud还不是以SSL方式连接的,要以管理员身份登入ownCloud,再设置强制用户以SSL连接。
发表回复