视频通话会议系统EasyRTC报certificate signed by unknown authority错误解决方案

本文主要是介绍视频通话会议系统EasyRTC报certificate signed by unknown authority错误解决方案,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

由于市场上对企业视频通话的需求越来越高,目前市面上的一些视频通话会议系统无法全部兼容所有的要求,为此我们对视频通话会议系统EasyRTC也做了升级更新。

RTC.png

我们的研发人员最近在进行EasyRTC新版调试视频的时候,发现报错“x509: certificate signed by unknown authority”,本文我们一起来看一下什么原因,为后面碰到同样报错的人做参考。

问题描述

在EasyRTC产品开发过程中,Go语言开发的程序需要向底层C语言开发的程序发送http请求获取部分信息。

resp, err := client.Get(GetAPIURL("/api/v1/getlivesessions?id="+id))
if err != nil {log.Println(err)return nil
}

此程序最终出现错误,返回nil。

原因分析

在C语言程序中,收到HTTP请求后,会自动将此请求代理到HTTPS请求中,因此在Go语言发送HTTP请求后,会收到HTTPS的证书,然后验证证书的有效性。一般来说,如果是私有生成的证书,或者未经过第三方权威证书公司认证后的证书,浏览器和官方都会提示错误。C中的HTTPS证书为默认私有证书,因为会出现“x509: certificate signed by unknown authority”错误。

解决方案

因为是本机访问C程序的接口,在此种场景下,不需要考虑安全问题,因此只需要在Go原因开发时,不验证证书即可正常获取接口信息。

按照以下方式编写获取不需要校检证书。

func getClient() *http.Client {tr := &http.Transport{TLSClientConfig: &tls.Config{InsecureSkipVerify: true},}client := &http.Client{Timeout:    3 * time.Second,Transport: tr,}return client
}

其中TLSClientConfig: &tls.Config{InsecureSkipVerify: true}代表为不需要校验证书。如果InsecureSkipVerify设置为false,则会校验证书。

EasyRTC播放效果:

EasyRTC.png

这篇关于视频通话会议系统EasyRTC报certificate signed by unknown authority错误解决方案的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/930837

相关文章

Vue3视频播放组件 vue3-video-play使用方式

《Vue3视频播放组件vue3-video-play使用方式》vue3-video-play是Vue3的视频播放组件,基于原生video标签开发,支持MP4和HLS流,提供全局/局部引入方式,可监听... 目录一、安装二、全局引入三、局部引入四、基本使用五、事件监听六、播放 HLS 流七、更多功能总结在 v

linux系统中java的cacerts的优先级详解

《linux系统中java的cacerts的优先级详解》文章讲解了Java信任库(cacerts)的优先级与管理方式,指出JDK自带的cacerts默认优先级更高,系统级cacerts需手动同步或显式... 目录Java 默认使用哪个?如何检查当前使用的信任库?简要了解Java的信任库总结了解 Java 信

Oracle数据库在windows系统上重启步骤

《Oracle数据库在windows系统上重启步骤》有时候在服务中重启了oracle之后,数据库并不能正常访问,下面:本文主要介绍Oracle数据库在windows系统上重启的相关资料,文中通过代... oracle数据库在Windows上重启的方法我这里是使用oracle自带的sqlplus工具实现的方

Redis高性能Key-Value存储与缓存利器常见解决方案

《Redis高性能Key-Value存储与缓存利器常见解决方案》Redis是高性能内存Key-Value存储系统,支持丰富数据类型与持久化方案(RDB/AOF),本文给大家介绍Redis高性能Key-... 目录Redis:高性能Key-Value存储与缓存利器什么是Redis?为什么选择Redis?Red

线上Java OOM问题定位与解决方案超详细解析

《线上JavaOOM问题定位与解决方案超详细解析》OOM是JVM抛出的错误,表示内存分配失败,:本文主要介绍线上JavaOOM问题定位与解决方案的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录一、OOM问题核心认知1.1 OOM定义与技术定位1.2 OOM常见类型及技术特征二、OOM问题定位工具

Python一次性将指定版本所有包上传PyPI镜像解决方案

《Python一次性将指定版本所有包上传PyPI镜像解决方案》本文主要介绍了一个安全、完整、可离线部署的解决方案,用于一次性准备指定Python版本的所有包,然后导出到内网环境,感兴趣的小伙伴可以跟随... 目录为什么需要这个方案完整解决方案1. 项目目录结构2. 创建智能下载脚本3. 创建包清单生成脚本4

java.sql.SQLTransientConnectionException连接超时异常原因及解决方案

《java.sql.SQLTransientConnectionException连接超时异常原因及解决方案》:本文主要介绍java.sql.SQLTransientConnectionExcep... 目录一、引言二、异常信息分析三、可能的原因3.1 连接池配置不合理3.2 数据库负载过高3.3 连接泄漏

深度解析Java @Serial 注解及常见错误案例

《深度解析Java@Serial注解及常见错误案例》Java14引入@Serial注解,用于编译时校验序列化成员,替代传统方式解决运行时错误,适用于Serializable类的方法/字段,需注意签... 目录Java @Serial 注解深度解析1. 注解本质2. 核心作用(1) 主要用途(2) 适用位置3

Debian 13升级后网络转发等功能异常怎么办? 并非错误而是管理机制变更

《Debian13升级后网络转发等功能异常怎么办?并非错误而是管理机制变更》很多朋友反馈,更新到Debian13后网络转发等功能异常,这并非BUG而是Debian13Trixie调整... 日前 Debian 13 Trixie 发布后已经有众多网友升级到新版本,只不过升级后发现某些功能存在异常,例如网络转

JWT + 拦截器实现无状态登录系统

《JWT+拦截器实现无状态登录系统》JWT(JSONWebToken)提供了一种无状态的解决方案:用户登录后,服务器返回一个Token,后续请求携带该Token即可完成身份验证,无需服务器存储会话... 目录✅ 引言 一、JWT 是什么? 二、技术选型 三、项目结构 四、核心代码实现4.1 添加依赖(pom