Ошибка загрузки HTTP NSURLSession / NSURLConnection (kCFStreamErrorDomainSSL, -9800) - PullRequest
0 голосов
/ 16 мая 2018

Я действительно разочарован ситуацией, с которой я сейчас сталкиваюсь. Некоторая помощь будет принята с благодарностью.

При отправке запроса POST через URLSession он выдает ошибку загрузки NSURLSession / NSURLConnection HTTP (kCFStreamErrorDomainSSL, -9800).

Я использую сертификат GoDaddy SSL, и веб-сайт показывает защищенный в дальнем левом углу без проблем при доступе.

Вышеприведенная ошибка происходит время от времени. Вышеуказанная ошибка не происходит каждый раз, когда я отправляю запрос. Мое приложение отправляет запрос каждую секунду для опроса новых данных.

Я предполагаю, что проблема может быть связана с отправкой такого большого количества запросов за короткий промежуток времени. Я не совсем уверен, так ли это.

Я использую Tomcat в качестве веб-сервера, и catalina.out не показывает ничего плохого в этом.

Чтобы увидеть, что могло пойти не так, я прогнал диагоности через

nscurl --ats-diagnostics https://***

Результат выглядит следующим образом:

Configuring TLS exceptions for ***
---
TLSv1.3
2018-05-16 11:35:00.691 nscurl[92034:10819554] NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9800)
Result : FAIL
---

Configuring TLS exceptions with PFS disabled for ***
---
TLSv1.3 with PFS disabled
2018-05-16 11:35:01.273 nscurl[92034:10819468] NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9800)
Result : FAIL
---

Configuring TLS exceptions with PFS disabled and insecure HTTP allowed for ***
---
TLSv1.3 with PFS disabled and insecure HTTP allowed
2018-05-16 11:35:01.591 nscurl[92034:10819579] NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9800)
Result : FAIL
---`

Все остальное проходит.

То, что я пытался смягчить проблему. В Info.plist я раскомментировал показанные ниже. Я также пробовал произвольную загрузку, но она не работает. Кроме того, произвольная загрузка имеет некоторые недостатки в отношении безопасности, поэтому я хочу максимально избегать ее использования

<key>NSAppTransportSecurity</key>
    <dict>
<!--        <key>NSExceptionDomains</key>-->
<!--        <dict>-->
<!--            <key>***</key>-->
<!--            <dict>-->
<!--                <key>NSExceptionRequiresForwardSecrecy</key>-->
<!--                <false/>-->
<!--                <key>NSExceptionAllowsInsecureHTTPLoads</key>-->
<!--                <true/>-->
<!--                <key>NSExceptionMinimumTLSVersion</key>-->
<!--                <string>TLSv1.2</string>-->
<!--            </dict>-->
<!--        </dict>-->
    </dict>

Спасибо, что нашли время, чтобы прочитать мой вопрос (большая проблема для меня)

...