我尝试使用 coturn 部署一个简单的TURN服务器。
当我在Trickle ICE(turn:rtc.jackxujh.me:3478 [webrtc:mighty]
)上测试时,Trickle ICE说“身份验证失败了?”。
coturn 服务器不断报告此错误:
错误:check_stun_auth:找不到用户的凭据
以下是我正在使用的完整turnserver.conf
(通过取消注释 coturn 示例配置文件的行):
external-ip=39.108.74.114/XXX.XXX.XXX.XXX #(XXX is internal IP)
fingerprint
lt-cred-mech
use-auth-secret
static-auth-secret=XXXXXXXX... #(XXX is the secret)
realm=rtc.jackxujh.me
user=webrtc:0xXXXXXXXX... #(XXX is the key)
cert=/etc/letsencrypt/live/rtc.jackxujh.me/cert.pem
pkey=/etc/letsencrypt/live/rtc.jackxujh.me/privkey.pem
mobility
我找到了关于GitHub的相关讨论,但我觉得最后没有解决方案。
事实上,我很困惑我的conf文件是否使用TURN REST API。
与此同时,我尝试使用# turnadmin -l
检查 turndb 中是否有名为 webrtc 的用户,但输出结果为空。 (这个命令是否正确?)
答案 0 :(得分:0)
实际上,我对我的conf文件是否使用TURN REST API感到困惑。
我可以确认您使用REST API,因为设置了use-auth-secret
use-auth-secret
因此,您需要使用unixtimestamp作为用户名和哈希密码。.
user=timestamp:userid
password=base64(hmac(secret key, user)
详细了解长期凭证和REST的区别:
https://www.ietf.org/proceedings/87/slides/slides-87-behave-10.pdf
如果您想使用普通用户名/密码,请使用长期凭证,因此请删除use-auth-secret
并静态或在数据库中设置
user=username1:key1
turnadmin
turnadmin -l
列出静态和数据库用户。
因此,对于REST,正确的是空列表。