5

我为 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

4

1 回答 1

5

我想我回答这个问题有点晚了,希望它能帮助以后偶然发现这个问题的人。

我认为您不能直接在 TURN 配置文件中添加用户,无论是单独的平面文件/某些数据库还是用于启动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 的情况下),external-ip需要另一个字段。

并且配置(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
于 2015-08-19T05:33:14.083 回答