之前在RTMP流媒体服务端应用开发系列 – Nginx-Rtmp鉴权设置这篇中介绍了Nginx-Rtmp服务器通过on_play和on_publish事件回调到http服务上,再用ngx_http_secure_link_module进行鉴权.
今天介绍一种原生的方式
注:只在博主编译的Nginx-Rtmp-Win32版本中有此功能
下载https://github.com/illuspas/nginx-rtmp-win32/archive/master.zip版本
首先配置nginx.conf
application live { live on; live_auth on; #鉴权开关 live_auth_secret nodemedia2017privatekey; #鉴权KEY }
加密 URL 构成:
rtmp://域名/业务名/流名?sign=失效时间戳-HashValue
1.推流与播放地址:
rtmp://192.168.0.10/live/stream123
2.链接失效时间:2017/3/23 10:10:0 计算出来的失效时间戳为
1490235000
3.nginx.conf配置key
nodemedia2017privatekey
4.组合为HashValue
HashValue = md5(“/live/stream123-1490235000-nodemedia2017privatekey”)
HashValue = d03af0812548d315279936ad76f912be
5.最终请求地址
rtmp://192.168.0.10/live/stream123?sign=1490235000-d03af0812548d315279936ad76f912be
sign关键字不能修改
安全URL的产生
应该由业务服务器生成安全的URL,防止在客户端泄漏key.可参考auth_gen.php
原创文章,转载请注明: 转载自贝壳博客