
Oryx 一键 HTTPS 教程3 步给 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给 SRS 流媒体服务上 HTTPS用 Oryx 只要点一下在控制台填个域名就能拿到 Lets Encrypt 签发的免费证书而且它每天会自动检查、快到期就自动续期全程不用你动手。浏览器推流提示不安全、摄像头被拒绝、HTTPS 网站里嵌播放器被 mixed content 拦截这些问题一次解决。先说收益启用之后你直接得到三样东西浏览器 WebRTC 推流从做不到变能用了。浏览器只在 HTTPS 安全上下文里放行摄像头和麦克风WHIP 推流的前提就是站点加密播放器可以嵌进任何 HTTPS 网站。之前 http 地址的流在 WordPress 等加密站点里会被浏览器当作 mixed content 直接拦截换成 https 分发就正常了证书零人工维护。Lets Encrypt 的证书有效期大约 3 个月Oryx 内置定时任务每天检查一次需要续期时自动续期并把新证书热加载到 NGINX 上。可以把 Lets Encrypt 理解成一个免费发证机关证书就是一张有有效期的通行证——不同的是Oryx 替你盯着到期日过期前自动帮你换新。动手前核对三件事 检查项要求环境一台已经装好 Oryx 的 DropletOryx 把 SRS、NGINX、Redis 等打包成单节点应用域名一个完整注册的域名本文用your_domain_name表示服务器公网 IP 用your_public_ipv4表示端口宿主机 80、443 对公网可达。Oryx 默认把宿主80/TCP映射到容器2022/TCP443/TCP映射到2443/TCP⚠️ 80 和 443 是硬要求Lets Encrypt 验证走 80 端口HTTPS 访问走 443。云厂商安全组和宿主机防火墙两边都要放行否则后面所有步骤都会卡在验证环节。实操三个目标依次拿下 ✅让域名指到服务器目的是给发证机关一个验证入口它得确认这个域名确实归你管。操作去域名解析管理处为your_domain_name添加一条 A 记录指向your_public_ipv4。验证解析是否生效ping your_domain_name预期输出是解析到你的公网 IPPING your_domain_name (your_public_ipv4): 56 data bytes 64 bytes from your_public_ipv4: icmp_seq0 ttl64 time11.8 ms能 ping 通就可以进入下一步。让免费证书一次签发这是整篇文章的核心操作只需要点两下用浏览器打开http://your_domain_name/mgmt进入 Oryx 控制台进入System系统 HTTPS Lets Encrypt页面输入your_domain_name点击Submit。后台会自动完成与 Lets Encrypt 服务器的通信、创建 challenge 验证域名控制权、下载并部署证书你不需要执行任何命令。验证改用https://your_domain_name/mgmt重新打开页面地址栏出现安全锁图标说明 NGINX 已经在用新证书提供加密访问了。 需要多个域名比如主域加 www时用分号隔开输入例如domain.com;www.domain.com——前提是每条域名都配好了 A 记录。让续期不用你操心证书到手后不用做任何事。Oryx 的定时任务每天检查一次证书剩余有效期快到期时自动续期必要时重新加载 NGINX 让新证书生效。想确认续期机制在正常工作查一下续期日志docker logs platform | grep renew看到类似下面的输出就对了——not yet due for renewal 表示证书还在有效期内任务只是例行检查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 No renewals were attempted.只要没有报错这套机制就一直在后台运转。底层发生了什么 Oryx 里的 HTTPS 能力由几个角色分工完成了解分工有助于排查问题组件职责LEGO自动 HTTPS 的核心负责向 Lets Encrypt 申请证书和续期NGINX提供 HTTP/HTTPS 访问与反向代理证书生效后由它完成安全传输/data 目录统一存放 SSL 证书文件、Oryx 生成的 SRS 与 NGINX 配置、Redis 数据容器重启不丢SRS 侧 https 配置流媒体服务自己的 HTTPS 监听证书生效后会与 NGINX 统一使用真实证书如果你同时在看纯 SRS 部署仓库里的 trunk/conf/https.srs.conf 给出了 SRS 原生 HTTPS 的写法http_server与http_api各自支持独立的https块http_server { enabled on; listen 8080; https { enabled on; listen 8088; key ./conf/server.key; cert ./conf/server.crt; } }参数就四个含义enabled on开启加密监听listen指定 HTTPS 端口key指向私钥文件cert指向证书文件。WebRTC 场景下rtc_server还需要配置candidate保证 SDP 里通告的候选地址客户端能访问到可参考 trunk/conf/https.rtc.conf。注意Oryx 模式下不要把 SRS 独立部署的配置文件直接搬过去。Oryx 会在/data下自动生成 SRS 与 NGINX 配置并通过/data/config/.env管理核心参数如CANDIDATE、AUTO_SELF_SIGNED_CERTIFICATE自签名开关。启用 Lets Encrypt 后Oryx 会用签发的真实证书替换默认自签名证书。遇到问题先看这里 通配符域名申请不了Oryx 的证书逻辑以单域名为主要场景支持分号分隔多域名wildcard 等高级需求请参考 Oryx 官方文档。提交后一直验证失败多半是 DNS 没生效。ACME 验证要求域名能从公网解析到你的公网 IP先用ping确认 A 记录已生效。重建容器后证书和密码都没了检查/data是否做了持久化挂载。Oryx 是单节点应用证书、配置、Redis 数据全在这个目录里没挂载等于每次重建从零开始。证书签发成功但外网打不开 https查云安全组和宿主机防火墙80、443 是否都对公网放行。在 Oryx 里手改 SRS 配置后行为异常恢复即可。Oryx 自己生成并管理配置手改的文件可能在重启后被覆盖。到这里你的 SRS Droplet 已经具备了完整的 HTTPS 能力控制台、API、信令和媒体分发都走加密通道浏览器推流也不再受限。接下来可以顺着 Oryx 控制台的 WebRTC 场景把 WHIP 推流链路也跑通。【免费下载链接】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),仅供参考