尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

SRS + Oryx 一键配置 HTTPS:Let‘s Encrypt 免费证书 3 步搞定,自动续期零运维

发布时间:2026/9/17 2:47:13

资讯中心
01
ARTICLE

SRS + Oryx 一键配置 HTTPS:Let‘s Encrypt 免费证书 3 步搞定,自动续期零运维

SRS + Oryx 一键配置 HTTPS:Let‘s Encrypt 免费证书 3 步搞定,自动续期零运维
SRS Oryx 一键配置 HTTPSLets Encrypt 免费证书 3 步搞定自动续期零运维【免费下载链接】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给 SRS 流媒体服务配上 HTTPS在 Oryx原 SRS Stack里只需要一次点击。它内置了 Lets Encrypt 免费证书的申请与续期能力域名填进去、提交Oryx 就会自动完成证书签发、挂载到 Nginx并且每天检查一次到期时间快过期时静默续期——你几乎不用碰任何命令行。什么时候你会被 HTTPS 卡住两个场景最常见浏览器推流推不上去。用 WebRTCWHIP从浏览器推送摄像头画面时浏览器只在安全上下文HTTPS 或 localhost里放行麦克风和摄像头权限。HTTP 页面上getUserMedia直接被拒推流无从谈起嵌进 HTTPS 网站后播放器转圈。WordPress 之类的站点本身是 HTTPS 的页面里如果加载 HTTP 的 HLS/FLV 播放地址浏览器会以 mixed content混合内容策略直接拦截播放器黑屏。换句话说只要你的流要被浏览器用到或者要被别的 HTTPS 网站引用SRS 就必须走加密通道。还有一件让事情变简单的事Oryx 的 SRS Droplet 默认按单域名工作。一个实例对一个域名证书怎么申请、怎么续期都不会有多域名交叉配置的麻烦。Oryx 本身是一个单节点一体化应用SRS 负责底层 RTMP/WebRTC/HLS/SRT 等流媒体能力外面包着 FFmpeg、Go 后端、React 控制台、Redis 和 NGINX。自动 HTTPS 正是 Oryx 在这一层封装出来的用户工作流之一架构细节可以参考仓库里的 skills/srs-support/references/oryx-overview.md。动手前的两样东西一个装好 Oryx 的 SRS Droplet按一键搭建视频流服务的流程完成安装与初始化即可容器启动时记得把宿主机的目录挂到容器内/data证书、Redis 数据、生成的配置都落在这里一个能注册、能改 DNS 的域名。本文用your_domain_name代指域名your_public_ipv4代指服务器公网 IP操作时替换成真实值。另外确认云厂商安全组里宿主机80和443端口对公网放行80 端口要留给 Lets Encrypt 做验证443 用来提供 HTTPS 访问。第 1 步把域名指到服务器在域名解析后台为your_domain_name加一条A 记录指向公网 IPA your_domain_name your_public_ipv4等几分钟后验证解析是否生效ping your_domain_name只要回显里的 IP 是你的your_public_ipv4解析就通了。这一步为什么必须做Lets Encrypt 的 HTTP/ACME challenge 会主动访问你的域名来验证控制权域名解析不到你的机器后面的申请必然失败。此时用浏览器打开http://your_domain_name/mgmt能正常看到 Oryx 控制台页面说明 HTTP 链路也通了。第 2 步控制台里一键签发证书进入控制台走System系统→ HTTPS → Lets Encrypt页面在输入框填入your_domain_name点Submit。剩下的是 Oryx 的后台工作它通过内置的LEGO一个自动化的 ACME 客户端库对接 Lets Encrypt 服务器创建并应答 challenge 证明你控制着这个域名然后拿回签发的证书。整个过程没有人工步骤也没有要填的私钥、邮箱之类东西。申请成功后把地址换成https://your_domain_name/mgmt重新加载页面。看到地址栏出现安全锁标识说明证书已经挂到 Nginx 上并生效了。想同时覆盖主域和 www输入框里用分号分隔多个域名即可例如domain.com;www.domain.com前提是每一个域名都配好了 A 记录。提交后https://domain.com和https://www.domain.com会一起可用。第 3 步确认证书会自己续期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.updatedfalse表示还没到续期时间什么都没做这是健康状态。此后证书会一直保持有效不需要你记任何日期。证书背后Oryx 和 SRS 各干了什么一键操作看似省事值得花两分钟搞懂分工出问题时才知道去哪查。Oryx 侧的三个角色LEGO负责申请与续期证书是自动 HTTPS 的核心引擎NGINX证书生效后由它对外提供 HTTPS 访问与反向代理控制台、OpenAPI、信令、媒体分发都从这条加密通道出去/data持久化目录证书文件、Oryx 自动生成的 SRS 与 NGINX 配置、Redis 数据全在这里。容器重启、升级不丢前提是挂载了持久卷。端口映射上Oryx 默认把宿主机443/TCP映射到容器内2443/TCPHTTPS 控制台、API、信令与媒体分发80/TCP映射到2022/TCPHTTP 访问。所以 Lets Encrypt 申请成功之后https://your_domain_name/mgmt就是 Nginx 拿着这张真实证书在提供服务。SRS 侧的 HTTPS 配置长什么样如果你不用 Oryx、跑的是裸 SRSHTTPS 同样是原生支持的。仓库自带的 trunk/conf/https.srs.conf 给了完整示例http_server和http_api各自都能独立开启一个加密监听http_server { enabled on; listen 8080; https { enabled on; listen 8088; key ./conf/server.key; cert ./conf/server.crt; } } http_api { enabled on; listen 1985; https { enabled on; listen 1990; key ./conf/server.key; cert ./conf/server.crt; } }逐条看enabled on打开 HTTPS 监听listen 8088/listen 1990分别是 HTTP 服务8080与 API 服务1985对应的加密端口key和cert指向私钥与证书文件。同目录下还有 trunk/conf/https.docker.conf、trunk/conf/https.rtc.conf、trunk/conf/https.hls.conf分别覆盖 Docker、WebRTC、HLS 三种场景trunk/conf/server.crt 与 trunk/conf/server.key 是随仓库附带的自签名示例证书本地调试可用生产环境请换成 Lets Encrypt 这类 CA 签发的。WebRTC 场景多一个细节rtc_server段要配candidate对应环境变量$CANDIDATE保证 SDP 里通告给浏览器的候选地址真实可达。HTTPS 管的是信令与控制面的安全UDP 8000 端口走媒体流两者配合缺一不可更多说明见 skills/internal-docs-for-srs/references/cpp-docs/doc/webrtc.md。Oryx 与 SRS 配置的关系要注意一个坑Oryx 会在/data下自动生成所需的 SRS 与 NGINX 配置核心参数由/data/config/.env管理如MGMT_PASSWORD管理员密码、CANDIDATEWebRTC 候选地址、AUTO_SELF_SIGNED_CERTIFICATE自签名证书开关。启用 Lets Encrypt 后Oryx 用它签发的真实证书替换默认自签名证书NGINX 与 SRS 的 HTTPS 通道统一切换过来。不要把裸 SRS 的示例 conf 直接拷进 Oryx 环境覆盖自动生成的文件两边结构不同容易把服务搞挂。边界与常见翻车点以单域名为主Oryx 的证书流程面向单域名设计支持分号分隔的多域名通配符wildcard证书这类高级玩法请对照 Oryx 官方文档确认是否支持DNS 必须公网可达解析不到你的公网 IPACME challenge 过不去申请会卡死或失败。先ping再点 Submit/data必须持久化这是单节点部署的命门。没挂持久卷时重建容器证书、Redis 数据、生成的配置全部归零安全组放行 80/44380 不是备用端口它承担 Lets Encrypt 的验证流量。很多人只开了 443 导致首次申请失败容量受单机限制Oryx 是单节点应用并发路数、录制、转码与 HTTPS 分发共享同一台机器的资源扩容需要自行规划多实例。做完之后你应该看到这些按上面的顺序走完逐项核对ping your_domain_name返回的是你的公网 IP浏览器打开https://your_domain_name/mgmt地址栏有安全锁控制台正常加载用浏览器 WebRTC 推流WHIP能正常获取摄像头/麦克风权限并开始推流docker logs platform |grep renew输出里出现 crontab 续期记录且无报错比如Certificate not yet due for renewal这类暂无需续期的提示。四条都满足你的 SRS Droplet 就具备了长期可用的完整 HTTPS 能力浏览器推流合规HLS/FLV/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),仅供参考
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。