可道云踩坑记——SSL 折磨实录

作者一直想搭建可替代 Onedrive 的私有云,考察 netcloud、seafile、可道云等后选择可道云,因其部署简单有完整 teamOS。但配置时问题不少,尤其是配置 IPv6 和 SSL 后。文中介绍配置步骤,如关闭防火墙、修改配置项,像去除音乐功能、调整 onlyoffice 相关配置、升级插件和系统、添加用户等。最难的 SSL 配置需了解可道云端口使用情况及 onlyoffice 容器部署特点,进行多项文件修改。作者总结称官方资料不全面,提醒不要用 http 公网访问,强调做好安全措施,如依情况开关防火墙。

一直想搭建一个可以替代 Onedrive 的私有云,前后了解了 netcloud、seafile、可道云等等。这些私有云盘都有可取的地方,但也都有缺点。一开始真的很想找到一个本地的 Onedrive 完美平替,但事实证明是想多了。

最终还是选择了可道云,原因就是它部署简单,有一个完整的 teamOS 可用,至少在安装方面降低了不少难度。

但在配置方面,还是遇到了不少问题,尤其是在配置 IPv6 和 SSL 之后。

关闭防火墙

1
2
sudo systemctl stop firewalld
sudo systemctl disable firewalld

配置项

修改这些项,可道云主要用于文件编辑,因此音乐之类的功能直接去除

使用 https 的话,onlyoffice 也必须启用 https

内网地址必须改为 ipv4 地址,因为 onlyoffice 是 docker 部署的,而 docker 并不支持 ipv6,因此无法从 ipv6 服务器读取数据,因此通不过检测,这也是前面需要禁用 reject 参数的原因。

升级插件,升级之前一定要先升级系统

添加用户,管理员和普通用户一定要分开,在不需要的时候最好禁用 admin。

最难的 SSL 配置

这一块要先了解一个知识点,可道云仅占用了一个端口,默认是 80,但是该端口在公网被禁,因此需要改成别的,出于安全考虑,应直接禁用 http。

还有一个 onlyoffice,占用了端口 8001,onlyoffice 在 teamOS 中以容器形式部署,众所周知,docker 默认不支持 IPv6,因此在配置 IPv6 访问时需要特殊处理。

  1. 修改/etc/nginx/nginx.conf,关闭 http,仅用 https,端口从 443 改为除 8443 外别的,详情看图:

/etc/nginx/nginx.conf

  1. 修改/etc/nginx/office-ssl.conf,配置好证书,详情看图:

/etc/nginx/office-ssl.conf

注意这份配置默认在 nginx.conf 中被注释,需要手动取消注释,图中也有说明。

  1. 修改 kodbox 容器内的配置,将/etc/onlyoffice/documentserver/default.json 中的 rejectUnauthorized 从 true 改为 false。似乎每次重启都需要进行一次修改。

总结

折腾了一下午,但写出来却感觉没多少。主要原因还是官方提供的资料不够全面,很多细节没有照顾到。

注意:不要直接用 http 在公网上访问这类私有云盘,因为你都上这种云盘了,想必隐私性都是比较高的,因此一定要做好安全措施,不要偷懒。

防火墙:我直接禁用是因为我的路由器已经有防火墙了,没必要再开一个。如果是自己的服务器,那么最好还是开一个防火墙,只放通 https 和 onlyoffice 的端口(我的示例是 8843 和 8443)。

Licensed under CC BY-NC-SA 4.0
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计