Hotspot 2.0 радиус соединения Wi-Fi ошибка SSL рукопожатие - PullRequest
0 голосов
/ 07 марта 2019

Мы пытаемся настроить соединение Wi-Fi Hotspot 2.0 с помощью нашего приложения. Вот как выглядит создание учетных данных Passpoint EAP-TTLS:

WifiEnterpriseConfig wifiEnterpriseConfig = new WifiEnterpriseConfig();
wifiEnterpriseConfig.setDomainSuffixMatch("hotspot.example.com");
wifiEnterpriseConfig.setRealm("hotspot.example.com");
wifiEnterpriseConfig.setEapMethod(WifiEnterpriseConfig.Eap.TTLS);
wifiEnterpriseConfig.setPhase2Method(WifiEnterpriseConfig.Phase2.MSCHAPV2);
wifiEnterpriseConfig.setIdentity("example");
wifiEnterpriseConfig.setPassword("example");
wifiEnterpriseConfig.setCaCertificate(cert); // getting cert part is omitted

WifiConfiguration wifiConfiguration = new WifiConfiguration();
wifiConfiguration.FQDN = "hotspot.example.com";
wifiConfiguration.providerFriendlyName = "hotspot.example.com";
wifiConfiguration.roamingConsortiumIds = new long[]{111111};
wifiConfiguration.enterpriseConfig = wifiEnterpriseConfig;

int netId = wifiManager.addNetwork(wifiConfiguration);
wifiManager.enableNetwork(netId, true);

Устройство пытается подключиться к Wi-Fi, но на этапе проверки сертификата сервера Radius сервера ssl происходит сбой со следующей ошибкой:

2019-03-05 16:52:30.718 22634-22634/? W/wpa_supplicant: TLS: Certificate verification failed, error 2 (unable to get issuer certificate) depth 1 for '/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=Thawte RSA CA 2018'
2019-03-05 16:52:30.718 22634-22634/? I/wpa_supplicant: wlan0: CTRL-EVENT-EAP-TLS-CERT-ERROR reason=1 depth=1 subject='/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=Thawte RSA CA 2018' err='unable to get issuer certificate'

Наш сервер Radius имеет сертификат, который подписан промежуточным сертификатом. Промежуточный сертификат подписан корневым сертификатом, которому доверяют в системе (дважды проверил его). Таким образом, мы указываем Промежуточный сертификат, используя метод wifiEnterpriseConfig.setCaCertificate. Правильно ли мы это делаем или что-то упустили?

Почему мы вообще должны устанавливать какой-либо сертификат вручную? Почему сервер redius не может быть проверен просто корневыми сертификатами системы?

Кто-нибудь знает, почему проблема возникает и как ее решить? Любые советы приветствуются!

...