rfc5766-turn-server - как включить с ним метод TLS и HTTP CONNECT?

У меня есть следующая настройка для rfc5766-turn-server, но я еще не уверен, как включить TLS в turnserver.conf?

Есть идеи, чего не хватает, чтобы убедиться, что 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

or

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

ПРИМЕЧАНИЕ: 80 TCP


person Community    schedule 16.07.2014    source источник
comment
По моему опыту, самый быстрый способ получить ответ — задать вопрос на groups.google.com/forum/#!forum/. Пожалуйста, сделайте это и обобщите полученный ответ ниже, чтобы другие пользователи могли извлечь из него пользу.   -  person Gili    schedule 17.07.2014


Ответы (1)


Думаю, я отвечаю на вопрос немного поздно, надеясь, что это поможет людям, которые позже наткнутся на этот вопрос.

Я не думаю, что вы можете добавлять пользователей в файлы конфигурации 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.

и конфигурация (RTCPeerConnection в приложении WebRTC):

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
person mido    schedule 19.08.2015