群晖 DSM 6.1 Docker Owncloud 镜像 开启 SSL
前言
现在网络大环境审核越来越严格了,所以将NAS中的服务都转为了SSL访问,问题来了我的OWNCLOUD是Docker版本的,系统的证书安装和它没有关系,所以我们就要在Docker镜像进行单独的证书安装。
第1步:你已经安装配置好了群晖下的Owncloud Docker镜像
这个是废话,如果还没有安装或者安装有问题的话我以后单独开一篇
第2步:把证书放到docker容器里面的apache配置目录
请选择对应web服务器的证书文件,由于docker官方的Owncloud镜像跑的是apache2,所以将下载的Apache目录的3个证书相关文件放到对应目录下。
[root@hostname:/home/root]#docker cp xxxxxx.key owncloud:/etc/apache2/ssl/
[root@hostname:/home/root]#docker cp xxxxxx.crt owncloud:/etc/apache2/ssl/
[root@hostname:/home/root]#docker cp xxxxxx.crt owncloud:/etc/apache2/ssl/
第3步:进入owncloud容器,加载OpenSSL模块
在终端或者xshell中输入openssl,查看是否安装ssl,如果出现下面图情况说明已经安装过了。
# docker exec -it owncloud bash
# openssl
第4步:加载Apache的SSL模块
输入命令:a2enmod ssl,我是已经加载过的,见下图所示,第一次时候,会提示重启Apache。
# a2enmod ssl
第5步:给owncloud容器安装常用工具
由于默认的docker容器是最小化安装,所以这里没有vim编辑工具,以及常用的网络工具,我们这里需要先下载一些常用的工具。
通过apt-get进行更新和下载。
#apt-get update
#apt-get install vim
第6步:修改SSL配置文件,绑定证书及打开443端口
Apache加载SSL模块后,会在/etc/apache2/sites-available下生成default-ssl.conf文件,编辑该文件。
#vim /etc/apache2/sites-available/default-ssl.conf
修改内容如下:
123456789<VirtualHost *:443>
ServerAdmin kzjimmy@qq.com
DocumentRoot "/var/www/html"
ServerName 你的域名
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/xxxxxx.crt
SSLCertificateKeyFile /etc/apache2/ssl/xxxxxx.key
SSLCertificateChainFile /etc/apache2/ssl/xxxxxx.crt
</VirtualHost>
配置文件参数说明:
<VirtualHost *:443>:这里配置‘*:443’既可,
DocumentRoot:网站根目录
ServerName:网站域名
SSLEngine on:启用SSL功能
SSLCertificateFile:证书文件
SSLCertificateKeyFile:私钥文件
SSLCertificateChainFile:证书链文件
第7步:把default-ssl.conf链接至/etc/apache2/sites-enabled文件夹
从apache的配置文件可以看到,apache只会读取/etc/apache2/sites-enabled目录的配置文件,所以需要把/etc/apache2/sites-available下的default-ssl.conf文件链接到/etc/apache2/sites-enabled目录下。
#ln -s /etc/apache2/sites-available/default-ssl.conf
/etc/apache2/sites-enabled/001-ssl.conf
第8步:重载配置文件,重启apache服务
#service apache2 reload
#service apache2 restart
重启apache服务时,owncloud容器会停止,需要手动启动。
1[root@jimmy html]#docker start owncloud
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~