我正在尝试使用自签名证书在 Linphone Android 中配置 TLS,以便能够与 FreeSWITCH SIP 服务器通信。但是 SSL 握手失败并出现以下错误:
channel [0x9ec3c000]:SSL 握手失败:X509 - 证书验证失败,例如CRL、CA 或签名检查失败 无法连接到 [TLS://52.3.207.224:5061]
谁能建议调试此问题的方法是什么?或者我们如何在 Linphone Android 中配置自签名证书。
注意:我不想按照下面的建议禁用 TLS 服务器证书验证
[啜饮] verify_server_certs=0
最佳答案
因为官方linphone app预配置的那些第三方CA无法识别自签名证书。
linphone 使用它自己的根 CA 存储列表,当 linphone 从您的 sip 服务器收到证书时,将在其中验证服务器证书。
如果你不想禁用服务器证书验证(这很好避免中间人攻击),并且由于没有 linphone 预配置的 CA 可以验证你的证书,你必须创建您自己的 CA 并将其添加到 linphone 的 CA 列表中。
你可以在linphone android源中找到CA列表:res/raw/rootca.pem
只需将您的 CA 添加到其中并重新编译即可。
我不熟悉 linphone,但我认为这是可行的方法。
一些有用的链接:
Creating Your Own SSL Certificate Authority (and Dumping Self Signed Certs)
关于android - Linphone Android : TLS Handshake Error with Self Signed Certificate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31781181/