ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

SRS 一键配置 HTTPS 免费证书:Oryx 接入 Let‘s Encrypt 的 5 分钟指南

SRS 一键配置 HTTPS 免费证书:Oryx 接入 Let‘s Encrypt 的 5 分钟指南 SRS 一键配置 HTTPS 免费证书Oryx 接入 Lets Encrypt 的 5 分钟指南【免费下载链接】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/srsSRS 是高性能实时流媒体服务器它的上层应用 Oryx 内置了一键 HTTPS在控制台填入域名就能自动申请 Lets Encrypt 免费证书并每日续期整套流媒体服务即刻加密。本文带你从域名解析走到加密验证全程不需要买任何商业证书。浏览器为什么拦你的播放器一个很真实的翻车现场你把播放器嵌进了一个 HTTPS 网站比如 WordPress 博客播放地址却还是 http页面直接白屏——浏览器出于安全策略拒绝加载非加密资源。浏览器 WebRTC 推流更严格只有安全上下文里才允许动用摄像头和麦克风。两个场景的解法一样服务器必须把 HTTPS 跑起来。Lets Encrypt 是一家免费的 CACertificate Authority负责核验域名归属并签发证书的机构它签发的 TLS 证书TLS 是浏览器与服务器之间加密通信的协议约 3 个月到期。Oryx 把申请 续期整条链路做成了自动化你只管在控制台填域名其余的事它自己干。默认部署形态下 Oryx 面向单个域名证书范围干净续期逻辑也因此简单可靠。做完之后你会得到什么加密的控制台https://your_domain_name/mgmt直接进 Oryx 管理面板地址栏显示锁 会自己续的证书每天定时体检快到期自动续期并重载 NGINX全程零人工随便嵌的流HLS、HTTP-FLV、WebRTC 流可以安全嵌入任意 HTTPS 网站可用的浏览器推流WebRTC 推流满足浏览器的安全上下文要求动手前先核对这两项一个已装好 Oryx 的 SRS Droplet没装的话先走官方一键安装流程Oryx 把 SRS、FFmpeg、NGINX、Redis 和 Web 控制台打包成了单节点应用一个你管得了 DNS 的已注册域名下文用your_domain_name代指你的域名、your_public_ipv4代指服务器公网 IP动手时请替换成真实值。操作主线从指路域名到签发证书把域名指向服务器Lets Encrypt 签证书前要先确认你控制着这个域名走的是 ACMEAutomated Certificate Management Environment一套自动化的证书签发协议。最基础的一步让域名能从公网解析到你的服务器。到域名解析后台加一条 A 记录把your_domain_name指向your_public_ipv4然后验证解析是否生效ping your_domain_name输出长这样才算成功PING your_domain_name (your_public_ipv4): 56 data bytes 64 bytes from your_public_ipv4: icmp_seq0 ttl64 time11.8 ms顺手在浏览器打开http://your_domain_name/mgmt能看到 Oryx 控制台页面说明 80 端口链路也是通的。在控制台一键申请证书进入System系统→ HTTPS → Lets Encrypt在输入框填入your_domain_name点Submit。后台发生的事Oryx 调用 LEGOACME 协议的客户端库与 Lets Encrypt 服务器握手创建 challenge挑战验证域名控制权拿到证书、落盘文件、重载 NGINX——整个过程全自动你不需要敲任何命令。需要多个域名时用分号分隔填写例如domain.com;www.domain.com前提是每一个域名都有指向本机的 A 记录。验证加密访问真的生效用https://your_domain_name/mgmt刷新页面地址栏出现锁标识、无混合内容警告即代表证书已生效。命令行再确认一次curl -sI https://your_domain_name/mgmt | head -n 1输出长这样才算成功HTTP/2 200别让证书过期每日自动续期机制3 个月有效期听着紧张实际不用你操心Oryx 内置定时任务每天检查一次证书剩余有效期临近到期就自动续期必要时重载 NGINX 让新证书生效。想确认机制是否就位看续期日志docker logs platform | grep renew输出长这样才算成功Thread #crontab: auto renew the Lets Encrypt ssl Processing /etc/letsencrypt/renewal/your_domain_name.conf Certificate not yet due for renewal No renewals were attempted.Certificate not yet due for renewal暂不需要续期是健康状态日志里出现 failed、timeout 之类的报错才需要按下一节的排查清单动手。源码视角HTTPS 支撑链路长什么样好奇它怎么实现的链路分两层。Oryx 层见 Oryx 概览LEGO负责向 Lets Encrypt 申请与续期证书是自动 HTTPS 的核心NGINX承载 HTTP/HTTPS 入口与反向代理证书生效后由它完成安全传输/data 持久化目录存放证书文件、生成的 SRS/NGINX 配置、Redis 数据容器重启后证书不丢端口映射宿主机443/TCP→ 容器2443/TCPHTTPS 控制台、API、信令、加密媒体分发80/TCP→2022/TCPHTTP 访问启用 Lets Encrypt 证书后Oryx 用它替换默认的自签名证书/data/config/.env里的AUTO_SELF_SIGNED_CERTIFICATE开关控制自签名的生成NGINX 与 SRS 的 HTTPS 通道统一切到真实证书。纯 SRS 层脱离 Oryx 单独部署时http_server和http_api各有独立的 https 配置段仓库自带的 https.srs.conf 就是现成参考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; } }参数直白https { enabled on; }打开加密监听listen是 HTTPS 端口key/cert指向私钥与证书文件。https.docker.conf、https.rtc.conf、https.hls.conf 分别覆盖 Docker、WebRTC、HLS 场景conf 目录下的 server.crt 与 server.key 是随附的自签名示例。别把纯 SRS 的配置文件直接拷进 Oryx 环境顶替——Oryx 会在 /data 下自动生成所需配置独立部署的 conf 只作参考。WebRTC 场景还要留意rtc_server的candidate即 SDP——Session Description Protocol会话描述协议两端靠它协商我在哪、怎么收包——中通告的候选地址写成candidate $CANDIDATE;并保证客户端可达HTTPS 信令通道和 UDP 媒体通道才能配合工作。边界与坑踩之前先绕开坑申请一直不过→ 对策先 ping 验证 A 记录确实解析到your_public_ipv4DNS 必须是公网可解析的内网域名走不了 ACME 验证坑证书签下来了但访问不通→ 对策云安全组放行 80 与 443——80 给 ACME 验证和 HTTP 跳转用443 给加密访问用坑容器重建后证书、配置全没了→ 对策Oryx 是单节点应用务必给/data挂持久化目录标准写法-v $HOME/data:/data坑想要通配符证书→ 对策现有逻辑以单域名为主体多域名可用分号分隔申请wildcard 等高级需求查 Oryx 官方文档坑改了环境文件不生效→ 对策/data/config/.env里的参数如CANDIDATE、MGMT_PASSWORD修改后需要重启 Oryx跑通之后往哪走至此你的 SRS Droplet 已经是一个完整加密的流媒体服务控制台、API、播放地址全部走 HTTPS证书每日自动续期浏览器推流不再被拦。下一步可以试着把流嵌进自己的 WordPress 站点实测播放器再顺手给rtc_server配上candidate把 WebRTC 链路补齐日常只需隔三差五扫一眼续期日志一切照常运转即可。【免费下载链接】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),仅供参考
返回列表