首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WebRTC服务器(mediasoup)抛出SSL错误,但只对Firefox (?!)

WebRTC服务器(mediasoup)抛出SSL错误,但只对Firefox (?!)
EN

Stack Overflow用户
提问于 2019-08-14 17:03:00
回答 1查看 2.4K关注 0票数 0

我在一个独立的盒子上运行流行的开源中介p WebRTC服务器,没有防火墙,安装了新的SSL证书,机器上几乎没有其他任何运行(没有web服务器,没有数据库服务器,什么也没有)。当我的视频聊天应用程序试图通过此服务器将视频传输到使用Firefox的客户端时,mediasoup会发出SSL错误(下面第2行):

代码语言:javascript
复制
mediasoup:WARN:mediasoup-worker [id:gxzingwt#3] RTC::DtlsTransport::OnSslInfo() | received DTLS fatal alert: bad certificate +0ms
mediasoup:ERROR:mediasoup-worker [id:gxzingwt#3] RTC::DtlsTransport::CheckStatus() | OpenSSL error [desc:'SSL status: SSL_ERROR_SSL', error:'error:14102412:SSL routines:dtls1_read_bytes:sslv3 alert bad certificate'] +0ms
mediasoup:WARN:mediasoup-worker [id:gxzingwt#3] RTC::DtlsTransport::CheckStatus() | connection failed +1ms
mediasoup:WARN:mediasoup-worker [id:gxzingwt#3] RTC::DtlsTransport::Reset() | resetting DTLS transport +1ms
mediasoup:WARN:mediasoup-worker [id:gxzingwt#3] RTC::WebRtcTransport::OnDtlsFailed() | DTLS failed +0ms

奇怪的是,这只发生在Firefox浏览器上。对于Safari、Chrome和Safari iOS (电话/iPad)来说,一点问题都没有。如果我有5个人在我的视频聊天室广播,我可以打开这些,看到/观看视频没有问题,从其他浏览器。但是Firefox (最新版本,无论是开发人员版本还是普通Firefox)都会导致mediasoup抛出SSL错误,并且流无法解析并向用户显示视频。

mediasoup运行在端口8443上,我也在端口443上尝试过它。我检查了调试日志,找不到任何其他问题--就是这个SSL问题。

我想我的加密证书可能是坏的,所以我已经撤销、删除并重新颁发了域的SSL证书。没有问题,也没有什么奇怪的地方。

我运行了openssl s_client -connect [my domain running mediasoup].com:8443 -showcerts,一切看起来都很好,证书很好--格式与我的web服务器机器上的有效证书匹配相同的输出,以及作为朋友的WebRTC服务器的相同输出。我还在机器上试用了openssl s_client -host [my domain].com -port 8443 -cert /etc/letsencrypt/live/[my domain].com/cert.pem -key /etc/letsencrypt/live/[my domain].com/privkey.pem,一切都很好。所以我不认为是证书的问题。

由于只有Firefox带来了这些问题,所以我认为Firefox可能以某种方式缓存了一个旧的/无效的证书,所以我删除并清理了Firefox的缓存,还查看了我的Mac的密钥链访问应用程序,以查看在运行mediasoup的域中是否有证书(没有)。

怎么回事?;-)为什么火狐--而且只有火狐!--会让媒体抛出这个错误,并阻止我的火狐用户使用视频聊天?再一次: Chrome,Safari,iPad/iPhone,一切都很完美。

(或者,我如何才能让这个媒体工作者进程更多地告诉我为什么它不喜欢SSL证书?)

(另外,为什么只有Firefox有问题呢?它是否是存储在Firefox中的证书,并发送到媒体服务器与其对话?我知道WebRTC协议很复杂,而且有很多的谈判,也许这就是它的一部分.就像它所指的证书可能与服务器域中的证书不同吗?)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-14 18:46:30

媒体论坛在这里:https://mediasoup.discourse.group

顺便说一句,正如Philipp所说,mediasoup“没有监听端口8443或443”。这是mediasoup-demo项目的WebSocket服务器。mediasoup本身根本不监听HTTP或WebSocket。

如果不向mediasoup.createWorker()提供TLS证书,则mediasoup将为DTLS创建自己的随机证书。在DTLS中,你可以看到这个错误。

顺便说一句,我已经在OSX中测试过最新的Firefox稳定版(68.0.2)和晚间版(70.0a1 (2019-08-14)),而且我在DTLS中没有发现任何SSL错误,所以老实说我不知道。

如果你能提供更多的信息(例如你使用的是哪个媒体版本),请在“媒体演示”类别中的媒体语篇组中打开一个问题。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57499089

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档