iOS 8.4 с использованием NSStream с включенным SSL OSError -9850

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

Приставка:

CFNetwork SSLHandshake failed (-9850)

Внутри приложения из [stream streamError]:

OSStatus error -9850.

Чтобы убедиться, что реализация SSL серверов не испорчена, я также попытался использовать socat в качестве посредника:

socat -d -d openssl-listen:1588,fork,cert=server.pem,verify=0 TCP4:localhost:1589

Я отключил проверку цепочки сертификатов, чтобы убедиться, что сам сертификат не является ошибочным: CFDictionaryAddValue(sslDictionary, CFStreamSSLValidatesCertificateChain, kCFBooleanFalse);

Моей последней каплей была настройка NSAppTransportSecurity, например:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
    <key>NSExceptionDomains</key>
    <dict>
        <key>my.domain</key>
        <dict>
            <key>NSAllowsArbitraryLoads</key>
            <true/>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
            <true/>
            <key>NSTemporaryExceptionRequiresForwardSecrecy</key>
            <false/>
            <key>NSTemporaryExceptionMinimumTLSVersion</key>
            <string>TLSv1.0</string>
        </dict>
    </dict>
</dict>

Ноль изменений в поведении.

1 ответ

Имена ключей исключений были обновлены из сеанса. См. App Transport Security Technote для новых имен.

NSTemporaryExceptionAllowsInsecureHTTPLoads
  -> NSExceptionAllowsInsecureHTTPLoads
NSTemporaryExceptionRequiresForwardSecrecy
  -> NSExceptionRequiresForwardSecrecy
NSTemporaryExceptionMinimumTLSVersion
  -> NSExceptionMinimumTLSVersion
Другие вопросы по тегам