onlyoffice监听https

修改onlyoffice

在开始将您的ONLYOFFICE Docs切换到HTTPS协议之前,您需要创建一个安全证书和证书私钥。将它们放到安装ONLYOFFICE Docs的计算机上的一个文件夹中。
获得证书后,请执行以下步骤:

所有命令都应以管理员权限执行。要以管理员身份启动命令提示符,请右键单击桌面左下角的 "开始 "菜单按钮,然后单击 "命令提示符(管理员)"选项。

  1. 停掉onlyoffice代理服务
    在这里插入图片描述
  2. 复制%ProgramFiles%\ONLYOFFICE\DocumentServer\nginx\conf\ds-ssl.conf.tmpl%ProgramFiles%\ONLYOFFICE\DocumentServer\nginx\conf\ds.conf
COPY /Y "%ProgramFiles%\ONLYOFFICE\DocumentServer\nginx\conf\ds-ssl.conf.tmpl" "%ProgramFiles%\ONLYOFFICE\DocumentServer\nginx\conf\ds.conf"
  1. 编辑 %ProgramFiles%ONLYOFFICE\DocumentServer\nginx\confds.conf 文件,将双引号{{…}}中的所有参数改为实际使用的参数。
    {{SSL_CERTIFICATE_PATH}} -您获得的SSL证书的路径;
    {{SSL_KEY_PATH}} - SSL证书私钥的路径;
    {{SSL_VERIFY_CLIENT}} - 是否启用客户端证书验证(可用值为on、off、optional和optional_no_ca);
    {{CA_CERTIFICATES_PATH}} - 客户端证书的路径,如果使用先前的参数启用,则将验证该路径;;
    {{ONLYOFFICE_HTTPS_HSTS_MAXAGE}} -高级配置选项,用于在ONLYOFFICE Docs NGINX vHost配置中设置HSTS最大使用期限,仅在使用SSL时适用(通常默认为31536000,这被认为足够安全);
    {{SSL_DHPARAM_PATH}} - Diffie-Hellman参数的路径;

在这里插入图片描述
有关配置文件中使用的 SSL 参数的更多信息,请参阅 NGINX 文档。
完成所有更改后,您可以再次启动 ONLYOFFICE DocumentServer 代理服务:
在这里插入图片描述
5. Execute %ProgramFiles%\ONLYOFFICE\DocumentServer\bin\documentserver-update-securelink.bat
在这里插入图片描述

https://helpcenter.onlyoffice.com/installation/docs-enterprise-https-windows.aspx

按照上述教程弄好之后确实能访问https但是websocket连接报错,找了半天没有找到合适的解决方案,重新安装,准备尝试反向代理

在这里插入图片描述

反向代理

iis

安装https证书

准备好https的证书,解压,安装证书
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

安装插件

Application Request Routing
在这里插入图片描述
URL Rewrite
在这里插入图片描述
安装完成之后打开iis查看是否多了两个功能
在这里插入图片描述
双击Application Request
在这里插入图片描述
开启代理即可,别忘记点击应用
在这里插入图片描述

新建网站

在这里插入图片描述

URL重写代理

https://helpcenter.onlyoffice.com/installation/docs-community-proxy.aspx

iis尝试失败
在这里插入图片描述

双击URL重写,添加规则,选择空白规则
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
模式填写(.*),重写填写http://localhost/{R:1}
在这里插入图片描述
点击应用访问https://localhost
在这里插入图片描述
但是这时候websocket还不行,需要代理websocket,再次修改规则
注意一下,只有IIS8.0以上才支持websocket。
{CACHE_URL} (.+)s://{CACHE_URL} (.*)s://
在这里插入图片描述
rewrite URL改为:{C:1}😕/需要代理的项目地址/{R:1}例如{C:1}://localhost/{R:1}
在这里插入图片描述
这样就实现了https和websocket的代理

最后的web.config配置如下

<?xml version="1.0" encoding="UTF-8"?>
<configuration><system.webServer><rewrite><rules><rule name="OnlyofficeWebsocketProxy"><match url="(.*)" /><conditions><add input="{CACHE_URL}" pattern="(.+)s://" /><add input="{CACHE_URL}" pattern="(.*)s://" /></conditions><action type="Rewrite" url="{C:1}://localhost/{R:1}" /></rule></rules></rewrite></system.webServer>
</configuration>

不过运行项目遇到了一个错误,文档预览下载失败
在这里插入图片描述
在这里插入图片描述

iis尝试失败,如果有大佬知道请告知~~

nginx

下载

nginx版本1.25.4
下载nginxhttp://nginx.org/en/download.html

修改配置

修改nginx.conf


#user  nobody;
worker_processes  1;#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;#pid        logs/nginx.pid;events {worker_connections  1024;
}http {include       mime.types;default_type  application/octet-stream;#log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '#                  '$status $body_bytes_sent "$http_referer" '#                  '"$http_user_agent" "$http_x_forwarded_for"';#access_log  logs/access.log  main;# Use this example for proxy HTTPS traffic to the document server running at 'backendserver-address'.# Replace {{SSL_CERTIFICATE_PATH}} with the path to the ssl certificate file# Replace {{SSL_KEY_PATH}} with the path to the ssl private key fileupstream docservice {server 127.0.0.1;}map $http_host $this_host {"" $host;default $http_host;}map $http_x_forwarded_proto $the_scheme {default $http_x_forwarded_proto;"" $scheme;}map $http_x_forwarded_host $the_host {default $http_x_forwarded_host;"" $this_host;}map $http_upgrade $proxy_connection {default upgrade;"" close;}proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection $proxy_connection;proxy_set_header X-Forwarded-Host $the_host;proxy_set_header X-Forwarded-Proto $the_scheme;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;## 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#  return 301 https://$server_name:443$request_uri;#}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 D:\\Onlyoffice\\nginx\\xxxx.pem;ssl_certificate_key D:\\Onlyoffice\\nginx\\xxxx.key;ssl_verify_client off;ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;ssl_session_cache  builtin:1000  shared:SSL:10m;ssl_prefer_server_ciphers   on;## [Optional] Before enabling Strict-Transport-Security headers, ensure your server is properly configured for SSL.## This directive informs the browser to always use HTTPS. For more info see:## - https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security# add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;# 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 /etc/ssl/certs/dhparam.pem;location / {proxy_pass http://docservice;proxy_http_version 1.1;}}}

启动nginx即可~~,感觉比iis简单

目前nginx测试没问题,如果想要监听80端口也可以开启,如果关闭系统或者注销可能就不能用了,需要以服务方式安装nginx

https://www.cnblogs.com/wcrBlog/p/11881656.html
https://www.cnblogs.com/nonkicat/p/10672787.html
https://blog.csdn.net/m0_53401243/article/details/133869439
https://weiku.co/article/561/
https://stackoverflow.com/questions/14841986/iis-aar-url-rewrite-for-reverse-proxy-how-to-send-http-host/14842856#14842856
https://techcommunity.microsoft.com/t5/iis-support-blog/arr-change-the-hostname-on-re-routing-to-backend-node-the/ba-p/1340780

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/527093.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

贝叶斯优化的门控循环神经网络BO-GRU(时序预测)的Matlab实现

贝叶斯优化的门控循环神经网络&#xff08;BO-GRU&#xff09;是一种结合了贝叶斯优化&#xff08;Bayesian Optimization, BO&#xff09;和门控循环单元&#xff08;Gated Recurrent Unit, GRU&#xff09;的模型&#xff0c;旨在进行时序预测。这种模型特别适用于时间序列数…

【Scrapy】京东商品数据可视化

【Scrapy】京东商品数据可视化 文章目录 【Scrapy】京东商品数据可视化  &#x1f449;引言&#x1f48e;一、爬取数据&#xff1a;1.1 scrapy爬虫库简介&#xff1a;1.2 技术实现&#xff1a;1.2.1搭建框架结构1.2.2 分析网页结构 二、数据保存&#xff1a;三、数据读取以及…

基于PCtoLCD实现OLED汉字取模方法

0 工具准备 PCtoLCD2002 NodeMCU&#xff08;ESP8266&#xff09;&#xff08;验证OLED字模效果&#xff09; 0.96寸OLED显示屏 1 基于PCtoLCD实现OLED汉字取模方法 1.1 基础知识介绍 0.96存OLED显示屏包含128x64个像素点&#xff0c;x轴方向为128个像素点&#xff0c;y轴方向…

重学SpringBoot3-内容协商机制

重学SpringBoot3-内容协商机制 ContentNegotiationConfigurer接口配置内容协商URL参数Accept头使用Url扩展名 自定义内容协商格式步骤1: 注册自定义媒体类型步骤2: 实现HttpMessageConverter接口步骤3: 使用自定义HttpMessageConverter 注意点 在 Spring Boot 3 中&#xff0c;…

【共享内存】System V共享内存{通信原理/相关接口/代码测试}

文章目录 1.初识共享内存1.0浅谈System V1.1什么是共享内存&#xff1f;1.2Linux-System V共享内存1.3图解共享内存1.4对共享内存的理解 2.创建共享内存2.1共享内存如何创建&#xff1f;2.2代码运行与测试2.3shm与pipe的区别2.4shm缺乏访问控制 3.代码理解shm3.1Log.hpp3.2comm…

HarmonyOS 数据持久化 关系型数据库之 查询逻辑编写

前面两篇文章 HarmonyOS 数据持久化 关系型数据库之 初始化操作 和 HarmonyOS 数据持久化 关系型数据库之 增删改逻辑编写 我们已经编写了 初始化 和 增删改 操作的基本逻辑 最后 收尾一下查询的函数 我们还是打开编辑器 然后 打开项目 找到 我们正在写的这个 relationalClass…

FPGA - 时钟Buffer的探究

1、IBUF : FPGA上所有的输入信号必须进过IBUF,vivado会自动给所有输入信号分配IBUF OBUF&#xff1a;FPGA上所有的输入信号必须进过IBUF,vivado会自动给所有输入信号分配OBUF BUFG:专用时钟的资源&#xff0c;目的是减少时钟抖动、增强时钟的驱动能力&#xff0c;vivado不会给信…

L2-2 老板的作息表(Python)

作者 陈越 单位 浙江大学 新浪微博上有人发了某老板的作息时间表&#xff0c;表示其每天 4:30 就起床了。但立刻有眼尖的网友问&#xff1a;这时间表不完整啊&#xff0c;早上九点到下午一点干啥了&#xff1f; 本题就请你编写程序&#xff0c;检查任意一张时间表&#xff0c…

Linux Docker安装redis缓存数据库

文章目录 一、查找Redis镜像二、拉取redis镜像三、创建数据目录和配置文件四、创建redis容器 一、查找Redis镜像 首先到docker镜像仓库下载redis镜像。地址&#xff1a;https://hub.docker.com/搜索redis&#xff0c;如下&#xff1a;找到对应想要下载的版本&#xff1a; 二、…

Leetcode - 二分查找 | 在排序数组中查找元素的第一个和最后一个位置

题目一&#xff1a;二分查找 二分查找 看到这道题之后&#xff0c;很快就能想到暴力的解法&#xff0c;把数组遍历一遍就能找到答案&#xff0c;时间复杂度O(n)。 假设存在一批数字[1&#xff0c;1&#xff0c;3&#xff0c;4&#xff0c;5&#xff0c;6&#xff0c;7&#x…

面试宝典-【redis】

目录 1.什么是缓存穿透 ? 怎么解决 ? 2.什么是布隆过滤器 3.什么是缓存击穿 ? 怎么解决 ? 4.什么是缓存雪崩 ? 怎么解决 ? 5.redis做为缓存&#xff0c;mysql数据如何与redis进行同步?(双写) 6.排他锁是如何保证读写、读读互斥的呢&#xff1f; 7.你听说过延…

Java EE之wait和notify

一.多线程的执行顺序 由于多个线程执行是抢占式执行&#xff0c;就会导致顺序不同&#xff0c;同时就会导致出现问题&#xff0c;就比如俩个线程同时对同一个变量进行修改&#xff0c;我们难以预知执行顺序。 但在实际开发中&#xff0c;我们希望代码按一定的逻辑顺序执行&am…