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宿主机修改后复制回去。

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

docker restart 容器ID

还有一个问题需手动处理,在浏览器中,onlyoffice的api.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

补充:

经过上面一翻折腾之后,onlyoffice在表单中可以正常预览了,但在线协作打开文件时会报“下载失败错误”,解决办法如下:
找到xxx/o2server/servers/webServer/x_component_CloudDocumentEditor下的Main.js文件
先将Main.min.js修改为Main.min.js.bak,再将Main.js修改为Main.js,然后在文件最后倒数第16-17行,有如下两条语句:
this.document.editor.document.url = o2.filterUrl(this.document.editor.document.url.replace(/http/,"https"));
this.document.editor.editorConfig.callbackUrl = o2.filterUrl(this.document.editor.editorConfig.callbackUrl);
用replace将http替换成https,即改成如下的样子:
this.document.editor.document.url = o2.filterUrl(this.document.editor.document.url.replace(/http/,"https").replace(/undefined/,"o2oa"));
this.document.editor.editorConfig.callbackUrl = o2.filterUrl(this.document.editor.editorConfig.callbackUrl).replace(/http/, "https");

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

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

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

  1. html上传动态图片不显示图片,解决 viewer.js 动态更新图片导致无法预览的问题

    前台页面要求图片的查看,是在表格中点击查看才弹出图片,网上发现用Viewer插件的挺多,就选用的这款插件,但是Viewer插件会产生缩略图,这里取巧了,将缩略图统一替换成了一个带有查看两字的小图片,这 ...

  2. html动态添加图片不显示不出来,解决 viewer.js 动态更新图片导致无法预览的问题...

    前台页面要求图片的查看,是在表格中点击查看才弹出图片,网上发现用Viewer插件的挺多,就选用的这款插件,但是Viewer插件会产生缩略图,这里取巧了,将缩略图统一替换成了一个带有查看两字的小图片,这 ...

  3. wordpress插件-really-simple-ssl插件解决网站开启ssl证书后,图片不能正常显示

    介绍: 前言碎语 先讲一下网站开启ssl证书后,图片不能正常显示的原因: 图片原本是http://xxx.xxx.xxx/xx/xx.png 但是你安装证书以后的地址变成了https://xxx.xx ...

  4. 解决手机安装Charles证书后,https抓取的请求依然为unknown

    手机安装Charles证书后,https抓取的请求依然为unknown 1.选中"启动SSL代理" 2.点击"添加": 主机:* 端口:443 如下图: 3.再 ...

  5. EV代码签名证书,支持Windows 10预览版和正式版驱动签名

    DigiCert EV代码签名证书具有普通内核代码签名证书的所有功能,但不同的是采用更加严格国际标准扩展验证(EV验证),并且有严格的证书私钥保护机制--必须采用 USB Key来保护签名证书的私钥, ...

  6. 解决OpenOffice文件预览转换xlsx文件出现com.sun.star.lang.IllegalArgumentException: URL seems to be an unsupported

    OpenOffice在进行xlsx文件预览时出现发生如下错误: com.sun.star.lang.IllegalArgumentException: URL seems to be an unsup ...

  7. 解决windows电脑系统图片不显示缩略图预览的2种办法

    今天发现,windows10桌面的图片全部显示成默认图片编辑器的图标了,这样会造成选择图片的时候非常不方便, 昨天还一切正常是什么造成了这样的现象? 问题如图: 解决方案1:windows设置问题 w ...

  8. DzzOffice开源办公套件(网盘)+OnlyOffice本地预览

  9. python gridfs_【已解决】用Python去连接本地mongoDB去用GridFS保存文件

    折腾: 期间,命令行方式的mongofiles去put get delete delete_id等,已经基本上搞清楚了. 接着就是去用Python代码,通过driver: 的方式,调用API,去保存数 ...

最新文章

  1. 金融行业安全漏洞分析报告
  2. maven打包jar上传到nexus
  3. ALV打印不显示打印界面的问题
  4. Bootloader之uBoot简介(转)
  5. SEL selector (二)
  6. 上海市社会保险费缴费标准
  7. C语言野指针产生的情况
  8. citrixreceiver云桌面系统_CStack xView桌面云平台与方德操作系统完成兼容性认证
  9. win10系统可禁用的服务器,Win10系统SysMain服务是什么?Win10系统SysMain能不能禁用?...
  10. 20.10 for循环 20.11/20.12 while循环 20.13 break跳出循环 20.14 continue结束本次循环 20.15 exit退出整个脚本...
  11. 软件构造 git 图形界面看Object Graph
  12. 后台UI框架bootstrap、JQuery——Hplus-v.4.1.0
  13. 《Oracle Exadata云服务官方指南》之 Oracle Database Exadata 云服务
  14. MWC 2018前瞻:三星华为诺基亚们会展示这些黑科技!
  15. matlab寻找频谱峰值,matlab – 从数据中获取FFT峰值
  16. 车道线检测---色彩空间变换
  17. 搜狗输入法自定义短语设置
  18. javaWeb-第一版
  19. 抖音 Android 基础技术大揭秘!
  20. 自整理Java面试题集锦(Java基础 1)

热门文章

  1. 【English】致我们终将过去的假期
  2. 关于调节亮度在小米手机上异常的情况
  3. CCF 202112-2 序列查询新解 python 满分
  4. CAD入门技巧:粗糙度符号动态块详解
  5. CSS三种颜色表达方式
  6. 2019电赛--无人机题目OpenMV总结
  7. 全国职称计算机等级考试用书,全国职称计算机等级考试题库及复习资料
  8. 狩猎装备的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  9. 2021-2027全球与中国硬件在环测试市场现状及未来发展趋势
  10. 用CA实现通过https(或443端口)访问网站