在大部分情形中,使用 HTTPS 协议访问门户要比默认的 HTTP 更安全。但为了更改门户的访问方法,您就需要进行一些操作。在下方的说明中,您将了解到如何将 ONLYOFFICE 文档切换至 HTTPS 协议。
使用 cerbot 将 ONLYOFFICE 文档切换至 HTTPS
这是最简单的切换方式 - 只需使用 cerbot 自动获取 Let's Encrypt SSL 证书即可。
安装 certbot。
在 Ubuntu 20 中可使用以下命令进行安装:
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
在将 certbot 安装至您的机器上之后,运行以下脚本以指定您的邮件和域:
sudo bash /usr/bin/documentserver-letsencrypt.sh email@example.com yourdomain.com
该脚本将在您的服务器中自动创建并安装 etsencrypt.org CA-signed 证书,然后重启 NGINX 服务以使变更生效。现在您的 ONLYOFFICE 文档应已在 https://yourdomain.com 地址上可用。
将 ONLYOFFICE 文档 v5.3 及更高版本切换至 HTTPS
在将 ONLYOFFICE 文档切换至 HTTPS 协议之前,您需要创建一个安全证书和证书私钥。创建后将其放入计算机中的 ONLYOFFICE 文档安装目录。
证书就绪后,请按照以下步骤进行操作:
- 停止 NGINX 服务:
sudo service nginx stop
- 使用以下命令将
ds-ssl.conf.tmpl
文件复制到ds.conf
文件中::
sudo cp -f /etc/onlyoffice/documentserver/nginx/ds-ssl.conf.tmpl /etc/onlyoffice/documentserver/nginx/ds.conf
- 编辑
/etc/onlyoffice/documentserver/nginx/ds.conf
文件,根据实际情况修改双层大括号 {{...}} 中的参数:
- {{SSL_CERTIFICATE_PATH}} —— 您所获取的 SSL 证书路径;
- {{SSL_KEY_PATH}} —— SSL 证书私钥路径;
- {{SSL_VERIFY_CLIENT}} —— 是否启用客户端证书验证(具有以下可用值:
on
,off
,optional
和optional_no_ca
); - {{CA_CERTIFICATES_PATH}} —— 如果前一个参数为“on”,那么这里应填入需验证的客户端证书路径;
- {{ONLYOFFICE_HTTPS_HSTS_MAXAGE}} —— 高级配置选项,用于设置 ONLYOFFICE 文档 NGINX vHost 配置中的 HSTS 最大年龄,仅在使用 SSL 时适用(通常默认为
31536000
,已可认为足够安全); - {{SSL_DHPARAM_PATH}} —— Diffie-Hellman 参数路径。
请查看 NGINX 文档以进一步了解配置文件中使用的 SSL 参数。
- 4. 在完成了所有更改后,可再次启动 NGINX 服务:
sudo service nginx start
请注意:您必须打开 443 端口以确保门户正常运行。
将 ONLYOFFICE 文档 v5.2 切换至 HTTPS
如需将 ONLYOFFICE 文档 v5.2 切换至 HTTPS,您需要在执行上述步骤时特别关注其中的第 2 步和第 3 步,其中会有些许不同:
- ...
- 使用以下命令将
onlyoffice-documentserver-ssl.conf.template
文件复制到onlyoffice-documentserver.conf
文件中:
sudo cp -f /etc/onlyoffice/documentserver/nginx/onlyoffice-documentserver-ssl.conf.template /etc/onlyoffice/documentserver/nginx/onlyoffice-documentserver.conf
- 编辑
/etc/onlyoffice/documentserver/nginx/onlyoffice-documentserver.conf
文件,根据实际情况修改双层大括号({{...}} )中的参数... - ...
将 ONLYOFFICE 文档 v4.3 到 v5.1 切换至 HTTPS
如需将 ONLYOFFICE 文档 v4.3/5.1 切换至 HTTPS,您需要在执行上述步骤时特别关注其中的第 2 步和第 3 步,其中会有些许不同:
- ...
- 使用以下命令将
onlyoffice-documentserver-ssl.conf.template
文件复制到onlyoffice-documentserver.conf
文件中:
sudo cp -f /etc/onlyoffice/documentserver/nginx/onlyoffice-documentserver-ssl.conf.template /etc/nginx/conf.d/onlyoffice-documentserver.conf
- 编辑
/etc/nginx/conf.d/onlyoffice-documentserver.conf
文件,根据实际情况修改双层大括号({{...}} )中的参数... - ...
将 ONLYOFFICE 文档 v3.6 到 v4.2 切换至 HTTPS
如需将 ONLYOFFICE 文档 v3.6/4.2 切换至 HTTPS,您需要在执行上述步骤时特别关注其中的第 2 步,其中会有些许不同:
...
2. 打开 /etc/nginx/conf.d/onlyoffice-documentserver.conf 配置文件并删除其中的所有内容。将 SSL 配置文件中的内容复制进 /etc/nginx/conf.d/onlyoffice-documentserver.conf 中。
SSL 配置文件内容为:
include /etc/nginx/includes/onlyoffice-http.conf;
## Normal HTTP host
server {
listen 0.0.0.0:80;
listen [::]:80 default_server;
server_name _;
server_tokens off;
## 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;
include /etc/nginx/includes/onlyoffice-documentserver-common.conf;
include /etc/nginx/includes/onlyoffice-documentserver-docservice.conf;
}
## HTTPS host
server {
listen 0.0.0.0:443 ssl;
listen [::]:443 ssl default_server;
server_tokens off;
root /usr/share/nginx/html;
## Strong SSL Security
## https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.html
ssl on;
ssl_certificate {{SSL_CERTIFICATE_PATH}};
ssl_certificate_key {{SSL_KEY_PATH}};
ssl_verify_client {{SSL_VERIFY_CLIENT}};
ssl_client_certificate {{CA_CERTIFICATES_PATH}};
ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA128:DHE-RSA-AES128-GCM-SHA384:DHE-RSA-AES128-GCM-SHA128:ECDHE-RSA-AES128-SHA384:ECDHE-RSA-AES128-SHA128:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES128-SHA128:DHE-RSA-AES128-SHA128:DHE-RSA-AES128-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA384:AES128-GCM-SHA128:AES128-SHA128:AES128-SHA128:AES128-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_prefer_server_ciphers on;
add_header Strict-Transport-Security max-age={{ONLYOFFICE_HTTPS_HSTS_MAXAGE}};
# add_header X-Frame-Options SAMEORIGIN;
add_header X-Content-Type-Options nosniff;
## [Optional] If your certficate has OCSP, enable OCSP stapling to reduce the overhead and latency of running SSL.
## Replace with your ssl_trusted_certificate. For more info see:
## - https://medium.com/devops-programming/4445f4862461
## - https://www.ruby-forum.com/topic/4419319
## - https://www.digitalocean.com/community/tutorials/how-to-configure-ocsp-stapling-on-apache-and-nginx
# ssl_stapling on;
# ssl_stapling_verify on;
# ssl_trusted_certificate /etc/nginx/ssl/stapling.trusted.crt;
# resolver 208.67.222.222 208.67.222.220 valid=300s; # Can change to your DNS resolver if desired
# resolver_timeout 10s;
## [Optional] Generate a stronger DHE parameter:
## cd /etc/ssl/certs
## sudo openssl dhparam -out dhparam.pem 4096
##
ssl_dhparam {{SSL_DHPARAM_PATH}};
include /etc/nginx/includes/onlyoffice-documentserver-*.conf;
}
本链接中提供了当前的实际配置文件。
...
将 ONLYOFFICE 文档 v3.5 及更早版本切换至 HTTPS
如需将 ONLYOFFICE 文档 v3.5/3.0 切换至 HTTPS,您需要在执行上述步骤时特别关注其中的第 2 步和第 3 步,其中会有些许不同:
...
2. 打开 /etc/nginx/sites-available/onlyoffice-documentserver 配置文件并删除其中的所有内容。前往 https://raw.githubusercontent.com/ONLYOFFICE/Docker-DocumentServer/v3.6/config/nginx/onlyoffice-ssl 并将 SSL 配置文件中的内容复制到您的/etc/nginx/sites-available/onlyoffice-documentserver
中。
3. 编辑 /etc/nginx/sites-available/onlyoffice-documentserver 配置文件,根据实际情况岸上上方的说明修改双层大括号({{...}} )中的参数。
...