我对rfc5766-turn-server进行了以下设置,但我还不确定如何在turnserver.conf中启用TLS?
知道缺少什么来确保TLS被激活以及缺少哪些其他相关来源?
# cat turnserver.conf
user=root:root
realm=x.x.x.x
#no-tls
#no-dtls
syslog
aux-server=x.x.x.x:80
aux-server=x.x.x.x:443
问题:当TURN客户端连接以下基元时,对于TURN服务器上方,则会出现自动TURN会话关闭问题。
config: '{"iceServers":[{"urls":"stun:stun.l.google.com:19302"},
{"credential":"root","urls":"turn:root@XXXXX:443?transport=tcp"}],
"iceTransports":"relay"}';
注意:443 TCP
或
config: '{"iceServers":[{"urls":"stun:stun.l.google.com:19302"},
{"credential":"root","urls":"turn:root@XXXXX:80?transport=tcp"}],
"iceTransports":"relay"}';
注意:80 TCP
答案 0 :(得分:4)
我想我迟到了回答这个问题,希望能帮助后来会偶然发现这个问题的人。
我认为你不能直接在TURN配置文件中添加用户,无论是单独的flatfile / some db还是用于启动turnserver
(或通过turnadmin
)的命令的一部分
让我们假设侦听ip是XXXXX
和端口PPP
(根据我的理解,这个端口可以是你想要的任何东西,无论传输是udp
还是tcp
如果你在端口< 1024上运行,你将需要提升访问权限)
使用turnconfig文件(turnconfig.conf):
listening-ip=XXXXX
tls-listening-port=PPP
cert=( certificate location)
pkey=( private key location)
lt-cred-mech
realm=someRealm
log-file=/var/tmp/turn.log
no-sslv2
no-sslv3
开头cmd应该是:turnserver -v -c turnconfig.conf -o -u user:root
没有配置文件:
turnserver --tls-listening-port PPP -L XXXXX -r someRealm -a -o -v -n -u user:root -l '/var/tmp/turn.log' --no-sslv2 --no-sslv3
注意:这是在NAT后面托管的(通常是在Amazon EC2的情况下),需要另一个feild external-ip
。
和config(WebRTC应用程序上的RTCPeerConnection)是:
config: {
'iceServers':[
{
'url': 'stun:stun.l.google.com:19302'
},
{
'url': 'turn:user@XXXXX:PPP?transport=udp',
'credential': 'root'
},
{
'url': 'turn:user@XXXXX:PPP?transport=tcp',
'credential': 'root'
}
]
};
对于生成证书和私钥,您可以使用openssl
:
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 3001 -nodes