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 ПТС
или же
config: '{"iceServers":[{"urls":"stun:stun.l.google.com:19302"},
{"credential":"root","urls":"turn:root@XXXXX:80?transport=tcp"}],
"iceTransports":"relay"}';
ПРИМЕЧАНИЕ: 80 ПТС
1 ответ
Я полагаю, что отвечаю на вопрос немного поздно, надеясь, что это поможет людям, которые позже натолкнутся на этот вопрос.
Я не думаю, что вы можете добавлять пользователей в конфигурационные файлы TURN напрямую, либо отдельный flatfile/ некоторые БД или часть команды для запуска 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
начальный 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
Примечание: это размещено позади NAT(обычно в случае Amazon EC2), другой области external-ip
необходимо.
и config(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