You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法通过Let's Encrypt SSL/TLS连接Coturn服务器,用户凭证丢失

Coturn-4.5.1.1无法获取Android设备的用户凭证(Turns协议TCP传输)

环境配置

Coturn服务器配置(版本4.5.1.1 'dan Eider')

tls-listening-port=5349
fingerprint
use-auth-secret
server-name=turn.***.com
realm=turn.****.com
verbose
cert=/etc/coturn/certs/turn.***.com.fullchain.pem
pkey=/etc/coturn/certs/turn.***.com.privkey.pem
dh-file=/etc/coturn/certs/ssl-dhparams.pem
mobility
min-port=49152
max-port=65535

Nginx配置(已排除Nginx影响,关闭后问题仍存在)

stream {
    ...
    ...
    error_log /var/log/nginx/str.error.log;
    upstream turnTls {
        server turn_tls_IP:5349;
    }
    map $ssl_preread_server_name $upstream {
        ....
        ....
        ...
        turn.****.com turnTls;
    }
   
    server {
    
        error_log /var/log/nginx/xxx.err.log;
        listen 443;         
        listen [::]:443;
        proxy_pass $upstream;
        ssl_preread on;
        proxy_buffer_size 10m;
       
    }
}

问题现象

Android设备通过以下Turns配置访问服务器时:

{
    'urls': ['turns:turn.***.com:443?transport=tcp'],
    'username': $username,
    'credential': $password,
}

Coturn无法获取用户凭证,日志显示:

7: session 002000000000000001: closed (2nd stage), user <> realm <turn.****.com> origin <>, local ****:5349, remote ***:53712, reason: TLS/TCP socket buffer operation error (callback)

注意:日志中user <>为空,且出现TLS/TCP socket buffer操作错误

但使用Trickle ICE测试时有时能正常工作,此时Trickle ICE日志:

0.783   Done
0.782   relay   2831610 udp *****   65082   0 | 31519 | 255 turns:turn.***.com:443?transport=tcp    tls

对应的Coturn日志:

session 000000000000000025: new, realm=<turn.****.com>, username=<1674486335:user_80_156>, lifetime=600, cipher=ECDHE-RSA-AES256-GCM-SHA384, method=TLSv1.2

已尝试的解决方法(均无效)

  • 禁用部分TLS协议:
    no-tlsv1
    no-tlsv1_1
    no-tlsv1_2
    no-tlsv3
    ...
    
  • 将Let's Encrypt证书密钥复制到/etc/coturn目录,设置权限为600,归属为turnserver:turnserver
  • 停止Nginx,直接通过443端口的TLS连接Turn服务器
  • 修改Nginx配置,解密后转发到非TLS的Turn服务器3478端口:
    stream {
        server {
            listen 443 ssl;
    
            ssl_certificate             ... fullchain.pem;
            ssl_certificate_key         ... privkey.pem;
      
            ssl_dhparam                 ... dhparam.pem;
            proxy_ssl                   off;
            proxy_pass                  turn_Ip_NoTLS:3478;
        }
    }
    
  • 在搭载ISRG Root X1和DST Root CA X3的多款Android设备上测试

求助

寻求解决Coturn服务器无法获取Android用户凭证的问题。

内容的提问来源于stack exchange,提问作者Mohsen Haydari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 02:20:25