android端WebSocket实现双向认证

本文介绍了在Android端实现WebSocket双向认证遇到的问题及解决方案。在尝试使用Java-WebSocket框架时,遇到在Android 6.0设备上验证失败的问题。通过切换到OkHttp3框架,并在请求头部添加特定的WebSocket协议,成功解决了此问题。
摘要由CSDN通过智能技术生成

     

前言

      最近有一个需求是在android端实现webSocket的双向认证,一开始用到了Java-WebSocket的框架来实现,但是有个问题是在高版本的Android手机上运行是正常,但是在Android6.0的魅族和OPPO手机上却验证失败了,报错CertPathValidatorException: Trust anchor for certification path not found,应该就是证书问题了,网上找了一些方法,但是依然无效

public static X509TrustManager UnSafeTrustManager = new X509TrustManager() {
    @Override
    public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
    }

    @Override
    public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
    }

    @Override
    public X509Certificate[] getAcceptedIssuers() {
        return new java.security.cert.X509Certificate[]{};
    }
};
sslContext.init(keyManagers, new TrustManager[]{UnSafeTrustManager}, new SecureRandom())

原因是webSo

根据提供的引用内容,我无法找到关于C++实现WebSocket的TLS双向认证的具体信息。但是,我可以为您提供一些关于WebSocket的TLS双向认证的一般信息。 WebSocket是一种全双工通信协议,用于在Web应用程序和服务器之间进行双向通信。TLS(Transport Layer Security)是一种加密协议,用于在网络上提供安全的通信。 要在WebSocket实现TLS双向认证,需要以下步骤: 1. 生成证书和私钥:首先,您需要生成用于TLS双向认证的服务器证书和私钥。您可以使用工具如OpenSSL来生成这些证书和私钥。 2. 配置服务器:将生成的服务器证书和私钥配置到WebSocket服务器上。服务器将使用这些证书和私钥与客户进行TLS握手,并进行身份验证。 3. 配置客户:客户需要配置用于TLS双向认证的客户证书和私钥。客户将使用这些证书和私钥与服务器进行TLS握手,并进行身份验证。 4. 进行TLS握手:在建立WebSocket连接之前,客户和服务器将进行TLS握手。在握手期间,双方将交换证书并验证对方的身份。 5. 建立WebSocket连接:一旦TLS握手成功,客户和服务器将建立WebSocket连接,并可以进行双向通信。 请注意,具体的实现细节可能因使用的WebSocket库和TLS库而有所不同。您可以参考相关的C++ WebSocket和TLS库的文档和示例代码,以了解如何在C++中实现WebSocket的TLS双向认证
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值