使用Docker及自簽署證書爲Nextcloud配置Onlyoffice(一)

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 nextcloud:/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”的頁面了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章