如何在 Android 11 中的 WiFiEnterpriseConfig 中添加根 CA 证书以实现基于 EAP 的卸载?

问题描述 投票:0回答:2

我想为 Android 11 设备实现基于 EAP 的卸载。在没有根 CA 证书的情况下添加 WiFiNetworkSuggestion 将返回错误代码 (STATUS_NETWORK_SUGGESTIONS_ERROR_ADD_NOT_ALLOWED)。 另根据 Android 开发人员文档

该框架对基于 TLS 的企业强制执行安全要求 建议(EAP-TLS、EAP-TTLS 和 EAP-PEAP);对此类的建议 网络必须设置根CA证书和服务器域名。

如有任何进一步的帮助,我们将不胜感激。

android wifimanager
2个回答
0
投票

我尝试过自签名证书。 Android 允许在配置证书后添加基于 EAP-TLS 的企业建议。使用下面的代码创建 x509Certificate,稍后可以在 WifiNetworkSuggestion 中设置。

private X509Certificate getCertificate() {
        try {
            CertificateFactory cf = CertificateFactory.getInstance("X.509");
            X509Certificate cert = (X509Certificate) cf.generateCertificate(context.getAssets().open("mycert.pem"));
            return cert;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

在WifiNetworkSuggestion中设置证书

WifiNetworkSuggestion.Builder wifiNetworkSuggestion = new WifiNetworkSuggestion.Builder();
            wifiNetworkSuggestion.setSsid("Ssid");

WifiEnterpriseConfig defaultWifiEnterpriseConfig = new WifiEnterpriseConfig();

                    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.R) {
                        defaultWifiEnterpriseConfig.setCaCertificate(getCertificate());
                        defaultWifiEnterpriseConfig.setDomainSuffixMatch("example.com");
                    }
                    wifiNetworkSuggestion.setWpa2EnterpriseConfig(defaultWifiEnterpriseConfig);

wifiNetworkSuggestion.build();

0
投票

这是否可以解决 rooted android 11 手机上 eduroam 网络的连接问题? 如果是的话,我可以获得一个简单的教程来说明在哪里放置这些代码吗?

© www.soinside.com 2019 - 2024. All rights reserved.