android - Linphone Android : TLS Handshake Error with Self Signed Certificate

标签 android ssl linphone

我正在尝试使用自签名证书在 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)

Using Self-Signed Certs With Android Linphone

关于android - Linphone Android : TLS Handshake Error with Self Signed Certificate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31781181/

相关文章:

java - 从 SQLite 填充联系人 ListView - 不显示联系人

ssl - 从 outlook imap 服务器获取 offlineimap 的正确证书信息

android - linphone android登录报错java.lang.UnsatisfiedLinkError : setUsername

SSL - 带通配符的自签名证书

tomcat - tomcat 是否支持安全的 websockets?

mingw - 为 Windows 构建 Linphone 时出错

android - 如何在 Android Studio 中更改 Linphone 的项目名称?

Android如何在普通字符串数组中打印sqlite数据?

安卓。 6.0 中 AudioAttributes 的错误捕获存在 4 无效

java - MediaRecorder.GetSurface() 返回 null