Docker部署onlyoffice,解决https访问

首先,启动onlyoffice的Docker镜像,本文章采用的2023年11月初的官方镜像,具体版本号未查到。当时国内的镜像源只能下载到旧版本的,需要将/etc/docker/daemon.json设置"dns" : [ "8.8.8.8" ]方能下载。

先用docker exec进入启动的onlyoffice镜像,仿照如下帖子创建签名

CentOS7自签名SSL证书并给nginx配置https_ssl写在nginx vhost中-优快云博客

返回宿主机,使用docker cp将签名拷出,另外需从宿主机中找到ds-docservice.conf一同拷出。

需要配置nginx的配置文件ds.conf,代码如下

server {
  
        listen 443 ssl;
        listen [::]:443;
        server_name localhost;

       
        ssl_certificate /etc/onlyoffice/documentserver/nginx/onlyoffice.crt;
       
        ssl_certificate_key /etc/onlyoffice/documentserver/nginx/onlyoffice.key;

        ssl_session_cache shared:SSL:1m;
        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;

  server_tokens off;

  
  set $secure_link_secret xtj7tj7DSqWKqqHM3e2P;
  include /etc/nginx/includes/ds-*.conf;
}

为解决410和403的问题,需找到镜像中的ds-docservice.conf,注释掉部分代码,代码如下

 secure_link $arg_md5,$arg_expires;
  secure_link_md5 "$secure_link_expires$uri$secure_link_secret";

  #if ($secure_link = "") {
  #  return 403;
  #}
  #
  #if ($secure_link = "0") {
  #  return 410;
  #}

 docker启动的映射路径,配置如下

  onlyoffice-documentserver: 
    image: onlyoffice/documentserver:latest
    container_name: onlyoffice-documentserver
    restart: always
    environment:
      JWT_SECRET: my_little_secret
    #dns_search:  
    volumes:
      - ./data/onlyoffice-documentserver/onlyoffice.key:/etc/onlyoffice/documentserver/nginx/onlyoffice.key
      - ./data/onlyoffice-documentserver/onlyoffice.csr:/etc/onlyoffice/documentserver/nginx/onlyoffice.csr
      - ./data/onlyoffice-documentserver/onlyoffice.crt:/etc/onlyoffice/documentserver/nginx/onlyoffice.crt
      - ./data/onlyoffice-documentserver/ds.conf:/etc/onlyoffice/documentserver/nginx/ds.conf
      - ./data/onlyoffice-documentserver/ds-docservice.conf:/etc/onlyoffice/documentserver/nginx/includes/ds-docservice.conf 
    ports:
      - "443:443"
    networks:
      - mynetwork

亲测可用!

如此操作,浏览器会显示“不安全”,如果有真实域名和CA证书,也可直接进行配置,nginx.conf配置如下:

server {
        listen 443 ssl;
        listen [::]:443;
        server_name chat.victorysoft.online;

        ssl_certificate /etc/onlyoffice/documentserver/nginx/xxx.xxx.xxx.pem;

        ssl_certificate_key /etc/onlyoffice/documentserver/nginx/xxx.xxx.xxx.key;

        ssl_session_cache shared:SSL:1m;
        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;

  server_tokens off;

  
  set $secure_link_secret xtj7tj7DSqWKqqHM3e2P;
  include /etc/nginx/includes/ds-*.conf;
}

### 使用 Docker 部署 OnlyOffice 教程 #### 启动 Docker 服务 为了确保 Docker 正常运行,在执行任何操作之前先启动 Docker 服务。 ```bash systemctl start docker ``` 此命令会激活 Docker 守护程序并准备就绪以接收容器化应用程序的请求[^3]。 #### 下载 OnlyOffice 文档服务器镜像 根据所需版本,可以指定特定标签来获取不同版本的 OnlyOffice Document Server。对于最新稳定版: ```bash sudo docker pull onlyoffice/documentserver:latest ``` 如果需要特定版本比如 7.3 版本,则应使用如下指令: ```bash sudo docker pull onlyoffice/documentserver:7.3 ``` 这将从 Docker Hub 中提取官方发布的对应版本镜像文件到本地环境[^1]。 #### 运行 OnlyOffice 容器实例 一旦下载完毕,可以通过下面这条命令创建一个新的容器并启动它: ```bash sudo docker run -i -t -d -p 80:80 --name onlyoffice \ onlyoffice/documentserver:7.3 ``` 上述命令中的参数解释: - `-i` 和 `-t` 参数保持 STDIN 打开并与 TTY 绑定; - `-d` 表示以后台模式运行容器; - `-p 80:80` 将主机端口映射至容器内部的服务监听地址; - `--name onlyoffice` 设置新创建容器的名字为 "onlyoffice"; 通过这些设置,OnlyOffice 应用将会绑定在宿主机上的 HTTP (TCP/80) 接口上提供 Web 访问支持。 #### 测试安装成功与否 打开浏览器访问 http://localhost 或者实际 IP 地址即可看到 OnlyOffice 登录页面,表明部署过程顺利完成。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值