拓冰建站拓冰建站
首页 / 资讯中心 / 正文

如何为 SRS 一键配置 HTTPS:Oryx 自动签发 Let‘s Encrypt 证书完整指南

如何为 SRS 一键配置 HTTPSOryx 自动签发 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 的一键 HTTPS链路通过 Oryx 为 SRS Droplet 自动签发 Lets Encrypt 证书开启流媒体加密访问并确认证书每日自动续期。读完后你能独立完成从域名解析、控制台提交证书申请到续期检查的全流程并弄清 Oryx 与 SRS 底层对 SRS 流媒体加密的支撑方式。为什么 SRS 绕不开 HTTPS浏览器里用 WebRTC 推流依赖安全上下文摄像头和麦克风只在 HTTPS或 localhost页面中可访问。不配置 HTTPS浏览器推流页面根本打不开这是硬性限制不是建议项。另一个高频场景是把播放嵌入 HTTPS 网站。页面是 HTTPS、流地址是 HTTP 时浏览器会按 mixed content混合内容策略拦截画面直接黑屏。唯一解法就是让 HLS/FLV/WebRTC 流也走 HTTPS。换句话说HTTPS 不是 SRS 的加分项而是浏览器侧使用的前置条件。环境准备清单开始之前请确认三项前置条件已安装 Oryx 的 SRS Droplet完成 Oryx 的安装与初始化一个完整注册的域名任意域名注册商均可购买本文用your_domain_name占位服务器公网 IP本文用your_public_ipv4占位实际请替换为真实值。Oryx原名 SRS Stack是一个单节点一体化应用集成了 SRS、FFmpeg、Go 后端、React 控制台、Redis 与 NGINX。SRS 提供底层流媒体能力Oryx 在其上封装了自动 HTTPS、鉴权、录制、转推等面向用户的工作流。自动 HTTPS 由内置的 LEGO 组件Lets Encrypt 客户端库驱动证书申请与续期全自动。详见 oryx-overview.md。HTTPS 配置全链路域名解析到服务器Lets Encrypt 需要通过网络验证你对域名的控制权域名必须先解析到服务器公网 IP。在域名服务商后台为your_domain_name添加一条 A 记录A your_domain_name your_public_ipv4等待 DNS 生效后用ping验证ping your_domain_name输出中解析到你的服务器公网 IP说明记录生效。接着在浏览器访问http://your_domain_name/mgmt能正常加载 Oryx 控制台页面整条链路的前置条件就齐了。控制台提交证书申请打开 Oryx 控制台进入System系统 HTTPS Lets Encrypt页面输入你的域名点击Submit。⚠️ 提交之后的所有操作都由 Oryx 自动完成内置的 LEGO 组件与 Lets Encrypt 服务器通信创建 challenge挑战验证域名控制权完成证书签发并写入持久化存储。全程无需手动干预。支持一次申请多个域名用分号分隔即可。例如输入domain.com;www.domain.com那么https://domain.com与https://www.domain.com会同时可用——前提是每个域名都添加了 A 记录并指向本机。验证生效与确认续期重新用https://your_domain_name/mgmt加载站点观察浏览器地址栏出现 HTTPS 锁标识说明证书已生效。Lets Encrypt 签发的证书有效期约为 3 个月。Oryx 内置定时任务每天检查证书是否即将到期需要时自动续期并重新加载 NGINX 使新证书生效。执行下面的命令即可查看续期日志docker logs platform |grep renew日志中出现renew ssl updatedfalse或Certificate not yet due for renewal之类的字样且没有报错说明自动续期机制已就绪证书会一直有效无需人工盯守。底层支撑机制剖析Oryx 侧的 HTTPS 架构Oryx 的 HTTPS 能力由三个环节共同构成LEGO证书申请与续期的核心负责与 Lets Encrypt 的全部交互NGINX提供 HTTP/HTTPS 访问与反向代理承载网页与媒体资源的安全分发/data持久化目录SSL 证书文件、生成的 SRS 与 NGINX 配置、Redis 数据统一存放在此容器重启后证书不丢失。端口映射决定访问路径宿主机443/TCP映射到容器内2443/TCP承载 HTTPS 控制台、OpenAPI、信令与安全的 HTTP 媒体分发80/TCP映射到2022/TCP用于普通 HTTP 访问。SRS 原生 HTTPS 配置脱离 OryxSRS 本身也具备完整的 HTTPS 配置能力。http_server与http_api下都可以挂独立的https配置块共四个参数enabled on开启 HTTPS 监听listenHTTPS 服务监听端口key私钥文件路径cert证书文件路径。https.srs.conf 中http_server段给出如下示例http_server { enabled on; listen 8080; https { enabled on; listen 8088; key ./conf/server.key; cert ./conf/server.crt; } }http_api段结构完全相同HTTPS 端口为 1990。Docker、WebRTC、HLS 场景分别可在 https.docker.conf、https.rtc.conf 与 https.hls.conf 中找到完整的配置参考仓库随附的server.crt与server.key是自签名证书示例。WebRTC 场景下rtc_server还需要配置candidate即$CANDIDATE确保 SDP 中通告的候选地址可被客户端访问与 HTTPS 的 UDP 媒体通道配合工作。Oryx 与 SRS 配置的关系Oryx 模式下不要把 SRS 独立部署的配置文件直接替换进去。Oryx 会在/data下自动生成所需的 SRS 与 NGINX 配置并通过/data/config/.env环境文件管理核心参数MGMT_PASSWORD管理员密码、CANDIDATEWebRTC 候选地址、AUTO_SELF_SIGNED_CERTIFICATE自签名证书开关等。启用 Lets Encrypt 证书后Oryx 用 LEGO 签发的证书替换默认自签名证书让 NGINX 与 SRS 的 HTTPS 通道统一使用真实证书。边界与注意事项单域名为主证书申请逻辑以单个域名为主要场景支持分号分隔多域名通配符域名等高级需求请参考 Oryx 官方文档DNS 必须公网可解析HTTP/ACME challenge 要求域名解析到你的公网 IPA 记录配置错误是申请失败的最常见原因保持/data持久化挂载Oryx 是单节点部署证书与配置都在/data下容器替换后没有持久挂载意味着全部丢失端口放行宿主机的 80、443 端口须对公网开放并在云安全组放行——80 用于 Lets Encrypt 验证与 HTTP 跳转443 用于 HTTPS 访问。总结为域名添加了 A 记录解析到服务器公网 IP在 Oryx 控制台一键获取 Lets Encrypt 证书LEGO 自动完成域名验证与签发通过地址栏锁标识验证 HTTPS 生效并用日志确认每日自动续期机制就绪理清了 LEGO、NGINX、/data持久化三者的分工以及 SRS 原生https配置块的用法。至此SRS Droplet 具备了完整的 HTTPS 能力WebRTC 浏览器推流满足安全上下文要求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),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门