Соединение AWS IOT закрывается в ОС IPAD v12.1.1
Когда мы подключаемся к AWS IoT по протоколу wss в ios версии 12.1.1, мы смогли успешно подключиться к IoT, но сразу же мы увидели, что событие onError запускается из IoT, а затем соединение закрывается. Он пытается снова подключиться, но безуспешно. Ошибка, которую мы получаем от IoT: "{IsTrusted: true}". Мы не используем никаких сертификатов, просто используем ключ доступа к профилю и секретный ключ.
Такая же сборка способна правильно подключаться на ios 12.0.1, 12.1
Версия IOS:12.1.1(не рабочая версия)
AWS IOT SDK: 2.0.0
1 ответ
iOS 12.1.1 представила новую политику прозрачности сертификатов Apple. Из примечаний к выпуску Apple:
iOS 12.1.1 требует, чтобы общедоступные сертификаты проверки подлинности сервера Transport Layer Security (TLS), выпущенные после 15 октября 2018 года, соответствовали политике прозрачности сертификатов, чтобы быть оцененными как надежные на платформах Apple.
Эта политика становится широко распространенным стандартом, который Google уже применяет в своем браузере Chrome. Amazon знал, что это произойдет, и в ответ на эти новые политики выпустил обновления для своего бэкэнда MQTT (AWS IoT), чтобы включить соответствующую сертификацию для новой конечной точки. См. https://aws.amazon.com/blogs/iot/aws-iot-core-ats-endpoints/:
Вы должны явно запросить конечную точку Amazon Trust Services для каждого региона в вашей учетной записи. Любая имеющаяся у вас конечная точка клиента, скорее всего, является конечной точкой VeriSign. Если ваша конечная точка имеет "-ats" в конце первого субдомена, то это конечная точка Amazon Trust Services. Например, "asdfasdf-ats.iot.us-east-2.amazonaws.com" является конечной точкой ATS.
Короче говоря, для моего iOS-приложения мы использовали предоставляемую AWS конечную точку MQTT asdfasdf.iot.us-east-2.amazonaws.com
(просто пример), без -ats
, Я обновил конечную точку до asdfasdf-ats.iot.us-east-2.amazonaws.com
и мы смогли выполнить наше рукопожатие SSL.
Я надеюсь, что это поможет с вашей проблемой! Удачи!