HTTPS-запрос не выполняется, если на устройстве неправильно установлена ​​дата - PullRequest
0 голосов
/ 19 февраля 2020

У меня есть простая NSURLSessionDataTask, например, так:

NSURLRequest *request = [NSURLRequest requestWithURL:url
                                      cachePolicy:NSURLRequestReloadIgnoringCacheData
                                      timeoutInterval:120];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
                                            completionHandler:^(NSData *data, NSURLResponse *response, NSError *error)
                                  {}];

работает, как и ожидалось, при нормальной работе, если только дата пользователя не установлена ​​неправильно на дату в прошлом, в этот момент запрос не выполняется со следующим ошибка:

ATS failed system trust
Connection 8: system TLS Trust evaluation failed(-9802)
Connection 8: TLS Trust encountered error 3:-9802
Connection 8: encountered error(3:-9802)
Task <C91545D7-1F82-4831-A202-A4ED40ABC50E>.<3> HTTP load failed, 0/0 bytes (error code: -1200 [3:-9802])

Я точно не уверен, есть ли безопасный способ исправить это, или я должен просто уведомить пользователя, чтобы правильно установить его дату. Можно ли это исправить таким образом, чтобы не снизить безопасность? Требуются ли изменения на сервере? В настоящее время в моем списке "Разрешить произвольные загрузки" установлено значение false.

...