使用Docker及自签署证书为Nextcloud配置Onlyoffice(一)

  • Post author:
  • Post category:其他


Nextcloud可以通过插件实现与Onlyoffice的无缝集成,后者是一个开源的在线查看、编辑office文档的工具。Onlyoffice的官方网址是:

https://www.onlyoffice.com

. 要实现二者的无缝集成,首先需要安装配置Onlyoffice Document Server,然后为Nextcloud安装对应的插件并完成配置。

本文所安装的onlyoffice的版本为5.5.1;nextcloud的版本号为18.0.3

一、使用Docker快速安装部署Onlyofiice Document Server

1. 安装配置Docker环境

有关Docker环境的配置,可以参考菜鸟教程相关教程的相关页面(

https://www.runoob.com/docker/ubuntu-docker-install.html

)这里不在赘述。

2. 下载Onlyoffice/DocumentServer镜像

$ docker pull onlyoffice/documentserver

命令执行后可以看到具体的下载进度,由于镜像文件较大(约500MB,解压缩后约2GB),下载的时间可能较长,国内用户建议选择上午下载,速度较快。如果下载成功,将可以看到下载的镜像的信息:

$ docker images
REPOSITORY                  TAG                 IMAGE ID            CREATED             SIZE
onlyoffice/documentserver   latest              d06214a03e27        2 weeks ago         2.14GB

如果提示没有权限,可以在命令前加上sudo,或者赋予当前用户运行docker命令的权限,给当前用户赋权的操作可参考第一步中的菜鸟教程的页面。

3. 运行容器

运行以下代码已创建容器并启动它:

$ docker run -itd \
    --name onlyoffice \
    -p 9000:443 \
    -p 9080:80 \
    -v $(pwd)/onlyoffice/DocumentServer/logs:/var/log/onlyoffice  \
    -v $(pwd)/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data  \
    onlyoffice/documentserver

如果容器启动成功,可以通过一下命令查看容器状态:

$ docker ps -a
CONTAINER ID        IMAGE                       COMMAND                  CREATED             STATUS              PORTS                                         NAMES
b10cb4ca780b        onlyoffice/documentserver   "/bin/sh -c /app/ds/…"   3 hours ago         Up 59 minutes       0.0.0.0:9080->80/tcp, 0.0.0.0:9000->443/tcp   onlyoffice

4. 配置https证书

使用自己创建的根证书为Onlyoffice document server签署证书,具体过程请参看《

使用Docker技术部署NextCloud

》一文的第六部分。需要注意的是一定要将证书的CommonName设置为网站的域名(不带https和端口号),否则在后面配置nextcloud访问onlyoffice部分的时候会报错。

为Onlyoffice document server开启https的过程很简单,只需要在$(pwd)/onlyoffice/DocumentServer/data下创建certs目录,并将私钥和证书文件放置其中即可,笔者的$(pwd)/onlyoffice/DocumentServer/data/certs目录内容如下:

$ ls -l  $(pwd)/onlyoffice/DocumentServer/data/certs
total 8
-rwxr-xr-x 1 lxd syslog 1558 Apr 21 06:55 onlyoffice.crt
-rwxr-xr-x 1 lxd syslog 1679 Apr 21 06:55 onlyoffice.key

5. 关闭客户端证书认证

默认情况下,onlyoffice会对客户端的证书进行认证,由于我们使用的是自签署证书,所以认证肯定无法通过,因此我们选择关闭相应的认证,具体的关闭方法是修改容器中/etc/onlyoffice/documentserver/default.json文件,为此,我们需要首先将文件拷贝出容器,做出相应的修改后在拷贝回去。从容器中拷贝配置文件到当前目录的命令为:

$ docker cp onlyoffice:/etc/onlyoffice/documentserver/default.json .

拷贝出文件以后,使用任何文本编辑器,查找“rejectUnauthorized”设置项,并将其值更改为“false”。笔者更改后该设置项的上下文文本片段如下:

                         "requestDefaults": {
                                "headers": {
                                        "User-Agent": "Node.js/6.13"
                                },
                                "rejectUnauthorized": false
                        },

将文件拷贝回容器的命令如下:

$ docker cp default.json nextcloud:/etc/onlyoffice/documentserver/default.json

6. 重启容器一使配置生效

$ docker restart onlyoffice

至此,Onlyoffice 的 Document server配置完成,可以通过浏览器访问 https://<your-domain>:9000/看到 “Document Server is running”的页面了



版权声明:本文为boliang319原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。