完整教程:【DOCKER】DOCKER容器部署的ONLYOFFICE 启用HTTPS

背景:已准备好私钥文件onlyoffice.key和证书文件onlyoffice.pem,onlyoffice通过docker容器部署


1. 准备工作(备份与判断部署方式)

在进行任何配置更改前,强烈建议先备份原有配置文件

  1. 进入正在运行的 ONLYOFFICE 容器:

    sudo docker exec -it <容器名称或ID> /bin/bash

    提示:可使用 sudo docker ps 查看容器信息。

  2. 在容器内备份原始 ds.conf

    cp /etc/onlyoffice/documentserver/nginx/ds.conf /etc/onlyoffice/documentserver/nginx/ds.conf.backup

2. 停止 Nginx 服务(可选)

可以不停止服务,后续直接重启,但为避免配置加载冲突,建议先停止:

sudo systemctl stop nginx

3. 复制 HTTPS 模板覆盖原配置

仅适用于 v5.3 及以上版本,使用 SSL 模板:

sudo cp -f /etc/onlyoffice/documentserver/nginx/ds-ssl.conf.tmpl /etc/onlyoffice/documentserver/nginx/ds.conf

其他版本请参考官方文档:Switching ONLYOFFICE Docs to HTTPS protocol


4. 修改 ds.conf 中的参数

使用编辑器打开配置文件:

sudo vim /etc/onlyoffice/documentserver/nginx/ds.conf

将以下 {{...}} 占位符替换为实际值:

参数说明
{{SSL_CERTIFICATE_PATH}}SSL 证书路径(如 /etc/ssl/onlyoffice.crt
{{SSL_KEY_PATH}}证书私钥路径(如 /etc/ssl/onlyoffice.key
{{SSL_VERIFY_CLIENT}}是否启用客户端证书验证,可选:onoffoptionaloptional_no_ca
{{CA_CERTIFICATES_PATH}}客户端 CA 证书路径(如需双向认证)
{{ONLYOFFICE_HTTPS_HSTS_MAXAGE}}HSTS 最大有效期(默认 31536000,单位:秒)
{{SSL_DHPARAM_PATH}}Diffie-Hellman 参数文件路径(增强密钥交换安全)

更多 Nginx SSL 参数配置可参考:Module ngx_http_ssl_module

例如:

include /etc/nginx/includes/http-common.conf;
## Normal HTTP host
server {
listen 0.0.0.0:80;
listen [::]:80 default_server;
server_name _;
server_tokens off;
set $secure_link_secret verysecretstring;
## Redirects all traffic to the HTTPS host
root /nowhere; ## root doesn't have to be a valid path since we are redirecting
rewrite ^ https://$host$request_uri? permanent;
}
#HTTP host for internal services
server {
listen 127.0.0.1:80;
listen [::1]:80;
server_name localhost;
server_tokens off;
set $secure_link_secret verysecretstring;
include /etc/nginx/includes/ds-common.conf;
include /etc/nginx/includes/ds-docservice.conf;
}
## HTTPS host
server {
listen 0.0.0.0:443 ssl http2;
listen [::]:443 ssl default_server http2;
server_tokens off;
set $secure_link_secret verysecretstring;
root /usr/share/nginx/html;
## Strong SSL Security
## https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.html
ssl_certificate /var/www/onlyoffice/Data/certs/onlyoffice.pem;
ssl_certificate_key /var/www/onlyoffice/Data/certs/onlyoffice.key;
# Uncomment string below and specify the path to the file with the password if you use encrypted certificate key
# ssl_password_file {{SSL_PASSWORD_PATH}};
ssl_verify_client off;
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
ssl_protocols TLSv1.2;
ssl_session_cache  builtin:1000  shared:SSL:10m;
ssl_prefer_server_ciphers   on;
add_header Strict-Transport-Security max-age=31536000;
add_header X-Content-Type-Options nosniff;
include /etc/nginx/includes/ds-*.conf;
}

5. 重启 ONLYOFFICE 容器

  1. 停止ONLYOFFICE 容器:

    sudo docker stop  <容器名称或ID>
  2. 删除ONLYOFFICE 容器:

    sudo docker rm  <容器名称或ID>
  3. 启动ONLYOFFICE 容器:
    这条命令有很多参数可视情况自行选择,不要照搬

    sudo docker run -itd -p 8081:80 -p 7443:443 -v /home/wst/docx_deploy/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data -v /home/wst/docx_deploy/onlyoffice/DocumentServer/data/nginx/ds.conf:/etc/onlyoffice/documentserver/nginx/ds.conf --name onlyoffice-document-server-9.0.4.1  --privileged -e JWT_SECRET=my_jwt_secret --restart=always onlyoffice/documentserver:9.0.4.1

✅ 验证配置

  1. 在容器内检查 Nginx 配置语法:
    sudo nginx -t
  2. 访问您的 ONLYOFFICE Docs 地址,确认已通过 https://ip:7443 正常访问,并且 HTTP 请求被重定向。

posted @ 2026-02-11 21:16  clnchanpin  阅读(120)  评论(0)    收藏  举报