解决O2OA自签名证书后onlyoffice无法预览及保存文件问题

    onlyoffice在o2oa下安装部署后,https模式下可以正常预览。为了安全起见,决定启用https模式,于是按照官方文档(https://www.o2oa.net/course/lz2heo.html)的介绍,采用了自签名证书的模式,后来发现onlyoffice在https模式下不能使用了,折腾整整5天时间,查阅了大量文章,发现官方发布的试用版本中,在https模式下也无法预览,官方相关文档和论支坛也未提到类似问题,于是总结如下。

    (今天是2022年3月8日,女同胞们的日子,问题得以解决,很开心哦!)

    废话少说,现将出现的问题及解决办法总结如下:

一、解决o2oa与onlyoffice访问时出现的Mix Content问题

按F12打开开发人员工具在console下显示Mix Content(网站混合),原因是o2oa已经实现https://xxx.xxx.xxx访问了,而onlyoffice仍然采用httpp访问。于是参考文章(https://blog.csdn.net/hotqin888/article/details/112722607)实现了onlyoffice通过https访问,Mix Content问题得以解决。

二、继续解决onlyoffice在预览文件时提示“下载失败”问题

原因1:SSL 认证之后,request.getScheme()获取不到https的问题记录

通过如下命令进入onlyoffice容器

#docker exec -it onlyoffice容器ID bash

通过如下命令查看onlyoffice的日志

#find / -name out.log

/var/log/onlyoffice/documentserver/converter/out.log

/var/log/onlyoffice/documentserver/docservice/out.log

/var/log/onlyoffice/documentserver/spellchecker/out.log

/var/log/onlyoffice/documentserver/metrics/out.log

/var/log/onlyoffice/documentserver/gc/out.log

#cat /var/log/onlyoffice/documentserver/docservice/out.log

发现http://xxx.xxx.xxx:20020/xxxx

这是问题的关键所在,原因是SSL 认证之后,request.getScheme()获取不到https的问题记录(参见文章https://www.cnblogs.com/start-fxw/p/7890337.html),我只参考了该文章的原因,具体解决办法是修改: xxx/o2server/servers/applicationServer/work/x_onlyofficefile_assemble_control/WEB-INF/classes/com/x/onlyofficefile/assemble/control/jaxrs/onlyoffice/utility/DocumentManager.class的源码DocumentManager.java,DocumentManager.java源码路径:xxxx\o2server\servers\applicationServer\work\x_onlyofficefile_assemble_control\describe\sources\com\x\onlyofficefile\assemble\control\jaxrs\onlyoffice\utility\DocumentManager.java

将所有 request.getScheme()修改为字符串 “https”,在eclipse中重新导出DocumentManager.class即可。

原因2docker node js无法对客户端自签名证书进行认证

    解决办法:关闭客户端证书认证

  1. 进入onlyoffice容器并修改onlyoffice的default.json文件

    参考文献:https://blog.csdn.net/boliang319/article/details/105650310

docker exec -it 容器ID bash

通过如下命令修改default.json文件,将"rejectUnauthorized"修改为false

#vim /etc/onlyoffice/documentserver/default.json

"requestDefaults": {

                  "headers": {

                              "User-Agent": "Node.js/6.13"

                           },

                             "rejectUnauthorized": false

                 }

    注意:如下onlyoffice容器内无法使用vim命令,可尝试#apt-get update 然后 #apt-get install vim 如果仍然不行,可通过docker cp将容器内的default.json复制到linux宿主机修改后复制回去。

    2.重启onlyoffice的docker容器,使配置生效

    docker restart 容器ID

    还有一个问题需手动处理,在浏览器中,onlyofficeapi.js文件无法自动加载,需要访问网址

https://xxx.xxx.xxx:xx/web-apps/apps/api/documents/api.js进行手动加载。

    3.onlyoffice容器无法访问onlyoffice的https网址

    可参考https://blog.csdn.net/boliang319/article/details/105651678?spm=1001.2014.3001.5502

      总之,采用自签名证书的优点是免费,但也会带来一些意想不到的问题,证书的签发时间可以比商业授权的长得多,但安全性相对较低,有条件建议购买商业证书。

     最后,o2oa的开源精神值得点赞,但开源不等于免费,建议有需求的客户购买其官方服务,毕竟专业的人干专业的事,尊重知识,支持原创,并非任何问题都能靠一已之力解决。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
O2OA是基于J2EE架构,集成移动办公、智能办公,支持私有化部署,自适应负载能力的,能够很大程度上节约企业软件开发成本的基于AGPL协议开放源代码的企业信息化系统需求定制开发解决方案,对外提供专业的开发运维等技术服务。 O2OA平台拥有流程管理、门户管理、信息管理、数据管理和服务管理五大核心能力。用户可以直接使用平台已有功能进行信息信息化建设,平台提供了完整的用户管理,权限管理,流程和信息管理体系,并且提供了大量的开发组件和开箱即用的应用,可以大幅度减化企业信息化建设成本和业务应用开发难度。 主要功能: 流程管理:全功能流程引擎。基于任务驱动,开放式服务驱动,高灵活性、扩展性,事件定义丰富。包含人工、自动、拆分、合并、并行、定时、服务调用、子流程等功能。应用场景丰富,可轻松实现公文、合同、项目管理等复杂工作流应用。 信息管理:具有权限控制能力的内容管理平台。支持自定义栏目、分类,表格,表单,多级权限系统,能轻松实现知识管理、通知公司、规章制度、文件管理等内容发布系统。 门户管理:具体可视化表单编辑的,支持HTML直接导入的,支持各类数据源,外部应用集成能力的,所见即所得的门户管理平台。适用于实现企业信息化门户系统,可以轻松结合O2OA提供的认证设置与其他系统进行单点认证集成。 服务管理:可以在前端脚本的形式,开发和自定义web服务,实现与后端服务数据交互的能力。 数据中心:可以通过配置轻松实现数据透视图展示,数据统计、数据可视化图表开发等等功能。 智能办公:拥有语音办公、人脸识别、指纹认证、智能文档纠错、智能填表推荐等智能办公特色。 移动办公:支持安卓\IOS手机APP办公,支持与企业微信和钉钉集成,支持企业私有化微信部署。 开箱即用:O2OA还提供如考勤管理、日程管理、会议管理、脑图管理、便签、云文件、企业社区、执行力管理等开箱即用的应用供企业选择。 产品特点: 1、代码全部开源,开发者可以下载源码进行任意,编译成自己的信息化平台。 2、平台全功能免费,无任何功能和人数限制。 3、支持私有化部署,下载软件安装包后可以安装在自己的服务器上,数据更安全。 4、随时随地办公,平台支持兼容HTML5的浏览器,并且提供了原生的IOS/Android应用,并且支持钉钉和企业微信集成。 5、高可扩展性,用户通过简单的学习后,可以自定义配置门户、流程应用、内容管理应用

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值