Проблема входа в AWS iOT с использованием учетных данных пользователя IAM iOS

Я пытаюсь войти в AWS iOT, используя учетные данные пользователя IAM. Но я постоянно получаю сообщение об ошибке «ошибка подключения», в консоли это отображается как «CP Conn 0x2819e8a80 SSLHandshake failed (-9807)». Я проверял с разными соединениями Wi-Fi, но все равно получаю те же ошибки.

Здесь я делюсь своим кодом, чтобы получить больше ясности,

        let credentialsProvider = AWSStaticCredentialsProvider(accessKey: myAccessKey, secretKey: mySecretKey)
        let configuration = AWSServiceConfiguration(region: AWSRegionType.USEast1, credentialsProvider: credentialsProvider)

        AWSIoTDataManager.register(with: configuration!, forKey: "iOTManager")
        iotDataManager = AWSIoTDataManager(forKey: "iOTManager")

        #if DEMONSTRATE_LAST_WILL_AND_TESTAMENT
        let lwtTopic: NSString = Constants.lwtTopic
        let lwtMessage: NSString = Constants.lwtMessage
        self.iotDataManager.mqttConfiguration.lastWillAndTestament.topic = lwtTopic as String
        self.iotDataManager.mqttConfiguration.lastWillAndTestament.message = lwtMessage as String
        self.iotDataManager.mqttConfiguration.lastWillAndTestament.qos = .AtMostOnce
        #endif

        self.iotDataManager.connectUsingWebSocket( withClientId: UUID().uuidString, cleanSession:true, statusCallback: mqttEventCallback)
    }

    func mqttEventCallback( _ status: AWSIoTMQTTStatus ) {
        DispatchQueue.main.async {
            print(status.rawValue)
            switch(status)
            {
            case .connecting:
                print("Connecting..!")

            case .connected:
                print("Connected..!")

            case .disconnected:
                print("Disconnected..!")

            case .connectionRefused:
                print("connectionRefused..!")

            case .connectionError:
                print("connectionError..!")

            case .protocolError:
                print("protocolError..!")

            default:
                print("unknowState" + String(status.rawValue))
            }
        }

Когда я запускаю тот же код на iPad mini, я могу успешно войти в AWS iOT, но не на iPhone (7, 7Plus, 8Plus). Мне было интересно, почему это происходит. Я не понимаю, что не так в коде. Пожалуйста, помогите мне решить эту проблему.


person yuvaraju    schedule 07.03.2019    source источник
comment
Вы получили решение?   -  person NavinBagul    schedule 25.03.2019
comment
Еще нет, пожалуйста, помогите мне   -  person yuvaraju    schedule 26.03.2019
comment
Это проблема начиная с iOS 12.1.1 из-за устаревания доверия центров сертификации Symantec.   -  person NavinBagul    schedule 26.03.2019


Ответы (1)


После некоторых исследований я нашел эти 2 вещи

1) Сбой рукопожатия SSL при использовании новой конечной точки с «-ats» или «.ats» здесь

2) Это вызывает проблему в более высокой версии (IOS 12.1.1), поэтому проверьте версию вашего устройства.

См. также этот документ

person NavinBagul    schedule 26.03.2019