rfc5766-turn-server-如何启用TLS和HTTP CONNECT方法?

5 ssl centos webrtc rfc5766turnserver turn

我为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
Run Code Online (Sandbox Code Playgroud)

问题:当TURN客户端使用以下原语连接到TURN服务器上方的原语时,将出现自动TURN会话关闭问题。

config: '{"iceServers":[{"urls":"stun:stun.l.google.com:19302"},        
         {"credential":"root","urls":"turn:root@XXXXX:443?transport=tcp"}], 
          "iceTransports":"relay"}';
Run Code Online (Sandbox Code Playgroud)

注意:443 TCP

要么

config: '{"iceServers":[{"urls":"stun:stun.l.google.com:19302"},        
         {"credential":"root","urls":"turn:root@XXXXX:80?transport=tcp"}], 
          "iceTransports":"relay"}';
Run Code Online (Sandbox Code Playgroud)

注意:80 TCP

mid*_*ido 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
Run Code Online (Sandbox Code Playgroud)

开始 cmdwould 是: 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 
Run Code Online (Sandbox Code Playgroud)

注意:这是否托管在 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'
                }
            ]
    };
Run Code Online (Sandbox Code Playgroud)

至于生成证书和私钥,您可以使用openssl

openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 3001 -nodes
Run Code Online (Sandbox Code Playgroud)