
Oryx一键HTTPS给SRS签发Lets Encrypt免费证书【免费下载链接】srsSRS is a simple, high-performance, AI-driven real-time media server supporting RTMP, WebRTC, HLS, HTTP-FLV, HTTP-TS, SRT, MPEG-DASH, and GB28181, with codec support for H.264, H.265, AV1, VP9, AAC, Opus, and G.711.项目地址: https://gitcode.com/GitHub_Trending/sr/srs浏览器拦截 WebRTC 推流SRS 必须上 HTTPS昨晚刚部署好 SRS想试试浏览器 WebRTC 推流结果浏览器直接拒绝非安全上下文下不开放摄像头和麦克风接口媒体权限只在 HTTPS 页面生效localhost 除外。把直播流嵌进客户的 HTTPS 网站也一样HTTP 流地址会触发 mixed content 告警播放器原地转圈。要破局只能给 SRS 开加密通道而这件事的成本可以压到零用 Oryx 一键申请 Lets Encrypt 免费证书整套流程半小时左右跑完。Oryx 是什么、开工前需要什么Oryx前身 SRS Stack是个单节点一体化平台SRS、NGINX、LEGO对接 Lets Encrypt 服务器做证书签发与续期的 ACME 客户端、Redis、Go 后端和 React 控制台全部装在一个容器里所以你不用单独折腾 certbot也不用手写 Nginx 的 TLS 参数证书相关操作在控制台点几下就完成。开工前只需要备齐三样东西一个已注册的域名下文写作your-domain.com请换成自己的一台有公网 IP 的服务器SRS Droplet下文用your-public-ipv4占位容器启动时用-v把宿主机目录挂载到容器内/data证书、生成的配置和 Redis 数据都存在这里容器重建后不会跟着丢。操作流从 DNS A 记录到地址栏小锁拿到证书之前有一件事必须先做把域名指向服务器。整条操作流可以连起来走加 A 记录。登录域名服务商控制台给your-domain.com加一条指向公网 IP 的 A 记录A your-domain.com your-public-ipv4这条记录的作用是让全网知道该域名该解析到哪台机器。验证解析生效。⚡ 解析配置好后在任意机器上确认一下ping your-domain.com预期返回的是你的服务器公网 IP若解析不到或指向别处 IP多半是记录填错或还在等待 DNS 传播。控制台一键申请证书。域名能 ping 通了就可以去 Oryx 控制台拿证书打开http://your-domain.com/mgmt进入System HTTPS Lets Encrypt输入your-domain.com点击Submit。Oryx 内置的 LEGO 组件会自动向 Lets Encrypt 发起 ACME challenge——也就是 Lets Encrypt 用来确认你确实拥有这个域名的验证环节——全程约一分钟期间不用盯着日志。要同时覆盖多个域名输入时用分号隔开即可如domain.com;www.domain.com前提是每个域名都加了 A 记录。确认 HTTPS 生效。用https://your-domain.com/mgmt重新加载页面地址栏出现小锁就说明 NGINX 已经在用新证书对外服务了此时可以把 WHIP 推流地址和 HLS/FLV 播放链接都换成 https 版本浏览器推流就有了合法的安全上下文。Lets Encrypt 续期日志怎么看、为什么 /data 必须持久化Lets Encrypt 签发的证书寿命大约 3 个月但到期不用你记着Oryx 内置一个定时任务每天检查证书是否临近到期该续就自动续并在必要时重载 NGINX 让新证书生效。想确认这套机制在跑看一次续期日志就行docker logs platform |grep renew一条典型的正常输出长这样Thread #crontab: auto renew the Lets Encrypt ssl Thread #crontab: renew ssl updatedfalse, message is Processing /etc/letsencrypt/renewal/lh.ossrs.io.conf Certificate not yet due for renewal The following certificates are not due for renewal yet: No renewals were attempted.看到 not yet due for renewal 且没有报错说明每日检查在正常工作后续不用管。真正让续期链断掉的是挂载问题证书文件、Oryx 生成的 SRS 与 NGINX 配置、Redis 数据全部落在/data下。只要这个目录做了宿主机持久化挂载容器重启甚至重建之后证书和续期状态都还在反之容器一换之前的申请记录就清零了。SRS https 配置项解读真实证书如何落到服务里 想弄清 Oryx 背后替你做了什么可以看 SRS 自身的 HTTPS 配置。仓库里有一份现成示例 https.srs.confhttp_server { enabled on; listen 8080; https { enabled on; listen 8088; key ./conf/server.key; cert ./conf/server.crt; } }https段四个字段含义都很直白enabled决定加密监听是否打开listen是 HTTPS 端口此处 8088对应明文侧的 8080key与cert分别是私钥文件和证书文件的路径。http_api段支持同样的结构示例中 API 服务在 1985 提供明文访问、1990 提供加密访问。纯 SRS 模式下key/cert通常指向仓库自带的自签名文件浏览器会提示不安全。Oryx 模式则不一样默认由AUTO_SELF_SIGNED_CERTIFICATE环境变量开启自签名证书兜底而你在控制台成功签发 Lets Encrypt 证书后Oryx 会把真实证书替换掉它并让 NGINX 统一接管加密流量——宿主机 443 映射到容器 244380 对应 2022控制台、OpenAPI、信令和 HTTP 媒体分发同一条链路全部走加密。组件层面的完整描述可参考 oryx-overview.md。对比项纯 SRS 模式Oryx 模式证书来源自己申请、自己放置LEGO 自动申请与续期 Lets Encrypt配置文件手工维护自动生成在 /data 下续期靠人记到期时间每日定时检查常见坑点速查 申请卡住或证书异常时八成在下面这几条里ping 不通或解析到错误 IP→ A 记录没配或还没生效核对记录值后等待传播别急着重复提交申请。证书申请一直转圈→ 公网 80/443 没放行Lets Encrypt 验证需要能访问到你的服务器在云安全组和系统防火墙同时放行这两个端口。想给*.domain.com签证书→ Oryx 的申请逻辑以单域名分号分隔多域名为主通配符不在覆盖范围内需要时按子域逐个申请。容器重建后证书不见了→/data没做持久化挂载补挂后重新签发一次即可。浏览器仍提示证书不安全→ 访问的还是默认自签名证书回到控制台 HTTPS 页确认真实证书已签发并生效。搞定之后剩下什么这套流程走完之后浏览器 WebRTC 推流有了合规的安全上下文HLS、HTTP-FLV、WebRTC 播放地址也能安全嵌进任意 HTTPS 页面不再被 mixed content 拦下证书每天自动体检到期自己续运维侧基本没有额外动作。想再往前一步的话值得研究CANDIDATE变量如何配置 WebRTC 候选地址——配合 HTTPS 链路低延迟浏览器推流的最后一块拼图也就补齐了。【免费下载链接】srsSRS is a simple, high-performance, AI-driven real-time media server supporting RTMP, WebRTC, HLS, HTTP-FLV, HTTP-TS, SRT, MPEG-DASH, and GB28181, with codec support for H.264, H.265, AV1, VP9, AAC, Opus, and G.711.项目地址: https://gitcode.com/GitHub_Trending/sr/srs创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考