问题

前端使用了ffmpeg压缩组件,在运行项目出现 SharedArrayBuffer is not defined的问题,使项目不能正常运行,经过网上查询,需要在response加入以下的head:

Cross-Origin-Opener-Policy: same-origin

Cross-Origin-Embedder-Policy: require-corp

尝试在后端系统中,在拦截器的prehandler给reponse加入者两个头,加入后项目可正常运行。又将项目挂到测试服务器上,却发现又报了 SharedArrayBuffer is not defined的问题。经过查证,这个东西跑在线上的服务器,需要https才能正常使用,于是尝试给服务器安装https证书以及申请证书。由于服务器没有域名,这里为服务器申请纯ip的证书,使用zeroSSL网站进行申请,申请完毕后拿到以下证书文件:

需要在springBoot中启用https,并且将上面的crt文件改成p12。

openSSL 的bin目录下 cmd,输入

openssl pkcs12 -export -clcerts -in server.crt -inkey servery.key -out server.p12
  • server.crt 替换为你的 crt 文件
  • server.key 替换为你的 key 文件
  • 记住输入的密码,后面会用到application里面
  • 执行此命令,生成了我们需要的 p12 文件,将其复制到 spring boot 项目下,和 application.properties 平级。

springboot项目配置

1 server
2 ssl:
3 key-store: server.p12
4 key-store-password: xxxx
5 key-store-type: PKCS12
6 enabled: true

然后再启动类中配置如下代码,实现全部Http请求转Https

 1  @Bean
2 public ServletWebServerFactory servletContainer() {
3 TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory(){
4 protected void postProcessContext(Context context) {
5 SecurityConstraint securityConstraint = new SecurityConstraint();
6 securityConstraint.setUserConstraint("CONFIDENTIAL");
7 SecurityCollection collection = new SecurityCollection();
8 collection.addPattern("/*");
9 securityConstraint.addCollection(collection);
10 context.addConstraint(securityConstraint);
11 }
12 };
13 tomcat.addAdditionalTomcatConnectors(httpConnector());
14 return tomcat;
15 }
16
17 @Bean
18 public Connector httpConnector() {
19 Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
20 connector.setScheme("http");
21 connector.setPort(80); //Connector监听的http的端口号
22 connector.setSecure(false);
23 connector.setRedirectPort(8181); //监听到http的端口号后转向到的https的端口号
24 return connector;
25 }

将证书放到nginx的config目录下,配置443端口转发到应用端口8181:

server {
listen 443 ssl;
ssl_certificate "/etc/nginx/server.crt";
ssl_certificate_key "/etc/nginx/server.key";
##下面信息要根据实际去配
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on; location / {
proxy_set_header X-Real-IP $remote_addr;
##下面信息要根据实际需求去配用
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Nginx-Proxy true;
proxy_set_header Connection "";
add_header Content-Security-Policy "upgrade-insecure-requests";
proxy_pass https://127.0.0.1:8181;
proxy_redirect default;
} }

其中add_header Content-Security-Policy "upgrade-insecure-requests"这一行是为了解决以下的错误

chunk-libs.8b3cc80f.js:70  Mixed Content: The page at 'https://xx' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'http://xxx'. This request has been blocked; the content must be served over HTTPS.

配置成功后用https+服务器ip+服务Url,访问项目,压缩功能可以正常使用,不再报错。

SharedArrayBuffer is not defined 问题的解决以及服务器https证书的配置的更多相关文章

  1. 小程序-报错 xxx is not defined (已解决)

    小程序-报错 xxx is not defined (已解决) 问题情境: 这样一段代码,微信的小程序报错 is not defined 我 wxml 想这样调用 //wxml 代码 <view ...

  2. py+selenium 报错NameError: name 'NoSuchElementException' is not defined【已解决】

     报错:NameError: name 'NoSuchElementException' is not defined  如图 解决方法: 头部加一句:from selenium.common.exc ...

  3. SpringBoot之解决云服务器VPS在所处云端集群的内网不能解析域名的问题:java.net.UnknownHostException:abc.cn: Temporary failure in name resolution

    一.起因与原因分析过程 前端小伙伴儿告诉我,说服务器崩了. 请求数据接口,接口有响应,但报的json提示指向:数据库异常错误. 遂登陆云主机查看日志,核心记录显示如下: 2018-11-09 22:1 ...

  4. 安卓,支付宝app登录时,提示 服务器安全证书已过期或不可信任,请问怎么解决

    安卓,支付宝app登录时,提示 服务器安全证书已过期或不可信任,请问怎么解决 请把手机时间调成当前时间.

  5. 使用Dhcpstarv解决DHCP服务器冲突问题

    场景: 内网环境需要开启多个DHCP服务器,分别给不同的设备进行PXE安装. 存在的问题: 多个DHCP的情况下,设备在启动时随机从一个DHCP服务器获取IP(哪个DHCP服务器先响应就从哪个获取)并 ...

  6. 转:解决tomcat服务器跨域问题

    原文地址: 解决tomcat服务器跨域请求问题 注:还未测试 在tomcat 的web.xml 配置文件中加入如下配置过滤器 (如web.xml中有多个filter时要把下面配置放在最前端) < ...

  7. Nginx反代,后端一个IP绑定多个SSL证书,导致连接失败之解决方法:HTTPS和SNI扩展

    默认:SSL协议进行握手协商进行连接的时候,默认是不会发送主机名的,也就是是以IP的形式来进行https连接握手协商的,这就导致一个问题,当一台服务器上有多个虚拟主机使用同一个IP的时候, Nginx ...

  8. k8s dashboard 解决secret自建证书导致浏览器访问限制

    解决参考: https://www.jianshu.com/p/c6d560d12d50   熟悉dashboard yaml文件所创建的资源 wget https://raw.githubuserc ...

  9. springboot中解决servlet乱码问题,使用配置类注册过滤器解决

    8.1 使用传统的Spring提供的字符编码过滤器 在03-springboot-web中的ServletConfig中配置文件类,注册字符编码过滤器 @Bean public FilterRegis ...

  10. 解决FTP服务器上中文名文件下载后为空的问题

    转: 解决FTP服务器上中文名文件下载后为空的问题 2017年07月20日 15:19:21 代码的寂寞 阅读数 2428  版权声明:本文为博主原创文章,未经博主允许不得转载. https://bl ...

随机推荐

  1. github上传文件报错failed to push some refs解决

    报错内容,不能推送文件到github上 error: failed to push some refs to github地址 原因是github项目与本地文件夹一些关键文件的确实,比如.git,re ...

  2. 2023icpc大学生程序设计竞赛-zzh

    这次比赛是第一次去外地打比赛,感觉挺好的.洛阳师范绿化感觉比我们学校好很多,校园看起来也挺大的.群里说牛肉汤是洛阳特色,比赛当天上午特地跑了两个餐厅,找到了一家牛肉汤,吃起来挺一般的,不过这家的酱香饼 ...

  3. ElementUi使用el-tooltip实现超出部分显示省略号

    效果前: 效果后: 创建myTooltio.vue组件 <template> <div class="tooltip-container"> <el- ...

  4. Java解析CSV文件并导出数据

    Java解析CSV文件并导出筛选过得数据 pom.xml引入jar包 <!--csv--> <dependency> <groupId>com.opencsv< ...

  5. Hive安装与启动

    一.mysql安装 在配置Hive之前一般都需要安装和配置MySQL,因为Hive为了能操作HDFS上的数据集,那么他需要知道数据的切分格式,如行列分隔符,存储类型,是否压缩,数据的存储地址等信息. ...

  6. [python]为指定目录下的文件名批量加前缀

    前言 功能描述:批量重命名指定目录下的文件,文件名加前缀,默认格式为"目录名_原文件名". 示例代码 import argparse import os import sys im ...

  7. quarkus依赖注入之九:bean读写锁

    欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本篇是<quarkus依赖注入> ...

  8. MySQL数据库触发器讲解 [创建/删除/查询/select into]

    刚学习实例完mysql触发器, 前来分享学习经验.    菜鸟装逼,  老鸟勿喷 先来认识一下有关触发器的一些关键词.  在使用触发器时, 这些关键词将被用到, 请记下它们的模样和用途(意思) cre ...

  9. 循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(2)

    在前面随笔<循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(1)>中介绍了Mvvm 的开发,以及一些界面效果,本篇随笔继续深入探讨 ...

  10. 聊聊数据库事务内嵌TCP连接

    最近再看项目代码,发现很多的service里面,喜欢在事务内部再去调用HTTP请求,简单分析下此种方式的利弊与解决策略. 概述 在数据库内部嵌套TCP连接(一般是HTTP调用或是RPC远程调用). @ ...