Ошибка сертификата SSL только в iOSIOS

Программируем под IOS
Ответить
Anonymous
 Ошибка сертификата SSL только в iOS

Сообщение Anonymous »

У меня есть простое приложение, отправляющее данные в веб-службу (Ubuntu/Node js/javascript). При использовании http все работало (хотя проблема с настройкой https все еще может быть проблемой). Похоже, проблема связана с сертификатом сервера SSL на сервере Ubuntu и с тем фактом, что Apple не признает его безопасность. Однако у меня нет проблем с эквивалентным подключением Android-приложения или веб-браузера к тем же веб-сервисам API для отдыха. На Apple и других форумах есть множество сообщений об этих проблемах, но ни одно из них не помогло мне успешно решить эту проблему.
Я провел тест SSL-сервера на https://www.ssllabs.com/ssltest/, который дает рейтинги SSL-сайтов. Тест дал оценку A, хотя был выявлен ряд незначительных проблем, которые могут иметь решающее значение для сбоя iOS. В некоторых сертификатах Sectigo указано, что они подписаны самостоятельно, чего я не мог понять.
Прикреплено сообщение об ошибке из журнала XCode
2025-09-10 10:28:01.725091+0100 locateandclock[2291:1585213] ATS failed system trust
2025-09-10 10:28:01.725192+0100 locateandclock[2291:1585213] Connection 1: system TLS Trust evaluation failed(-9802)
2025-09-10 10:28:01.725291+0100 locateandclock[2291:1585213] Connection 1: TLS Trust encountered error 3:-9802
2025-09-10 10:28:01.725352+0100 locateandclock[2291:1585213] Connection 1: encountered error(3:-9802)
2025-09-10 10:28:01.726727+0100 locateandclock[2291:1585213] Task . HTTP load failed, 0/0 bytes (error code: -1200 [3:-9802])
2025-09-10 10:28:01.736504+0100 locateandclock[2291:1585213] Task . finished with error [-1200] Error Domain=NSURLErrorDomain Code=-1200 "An SSL error has occurred and a secure connection to the server cannot be made." UserInfo={NSLocalizedRecoverySuggestion=Would you like to connect to the server anyway?, _kCFStreamErrorDomainKey=3,
NSErrorPeerCertificateChainKey=(
"",
"",
"" ),
NSErrorClientCertificateStateKey=0, NSErrorFailingURLKey=https://xxxxxxxxxxxx.co.uk/insertclocking, NSErrorFailingURLStringKey=https://xxxxxxxxxxxx.co.uk/insertclocking, NSUnderlyingError=0x282361650 {Error Domain=kCFErrorDomainCFNetwork Code=-1200 "(null)" UserInfo={_kCFStreamPropertySSLClientCertificateState=0, kCFStreamPropertySSLPeerTrust=, _kCFNetworkCFStreamSSLErrorOriginalValue=-9802, _kCFStreamErrorDomainKey=3, _kCFStreamErrorCodeKey=-9802, kCFStreamPropertySSLPeerCertificates=(
"",
"",
"" )}},
_NSURLErrorRelatedURLSessionTaskErrorKey=( "LocalDataTask ." ), _kCFStreamErrorCodeKey=-9802, _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask ., NSURLErrorFailingURLPeerTrustErrorKey=,
NSLocalizedDescription=An SSL error has occurred and a secure connection to the server cannot be made.}

Затем я изменил настройки iOS, установив NSAllowsArbitraryLoads для удаления ATS — проверка, а не решение. Сообщение об ошибке меняется на следующее, однако я не уверен, о чем оно мне говорит.
Есть идеи???
2025-09-12 12:33:32.650932+0100 locateandclock[2832:2071478] Connection 2: default TLS Trust evaluation failed(-9813)
2025-09-12 12:33:32.651119+0100 locateandclock[2832:2071478] Connection 2: TLS Trust encountered error 3:-9813
2025-09-12 12:33:32.651175+0100 locateandclock[2832:2071478] Connection 2: encountered error(3:-9813)
2025-09-12 12:33:32.706852+0100 locateandclock[2832:2071478] Task . HTTP load failed, 0/0 bytes (error code: -1202 [3:-9813])
2025-09-12 12:33:32.723928+0100 locateandclock[2832:2071541] Task . finished with error [-1202] Error Domain=NSURLErrorDomain Code=-1202 "The certificate for this server is invalid. You might be connecting to a server that is pretending to be “xxxxxxxxxxx.co.uk” which could put your confidential information at risk."
UserInfo={NSLocalizedRecoverySuggestion=Would you like to connect to the server anyway?, _kCFStreamErrorDomainKey=3, NSErrorPeerCertificateChainKey=(
"",
"",
"" ),
NSErrorClientCertificateStateKey=0, NSErrorFailingURLKey=https://xxxxxxxxxxxxx.co.uk/insertclocking, NSErrorFailingURLStringKey=https://xxxxxxxxxxxxx.co.uk/insertclocking, NSUnderlyingError=0x282a1a0d0 {Error Domain=kCFErrorDomainCFNetwork Code=-1202 "(null)" UserInfo={_kCFStreamPropertySSLClientCertificateState=0, kCFStreamPropertySSLPeerTrust=, _kCFNetworkCFStreamSSLErrorOriginalValue=-9813, _kCFStreamErrorDomainKey=3, _kCFStreamErrorCodeKey=-9813, kCFStreamPropertySSLPeerCertificates=(
"",
"",
"" )}}, _NSURLErrorRelatedURLSessionTaskErrorKey=( "LocalDataTask ." ), _kCFStreamErrorCodeKey=-9813, _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask ., NSURLErrorFailingURLPeerTrustErrorKey=,
NSLocalizedDescription=The certificate for this server is invalid. You might be connecting to a server that is pretending to be “xxxxxxxxx.co.uk” which could put your confidential information at risk.}


Подробнее здесь: https://stackoverflow.com/questions/797 ... n-ios-only
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»