HTTPS-запрос Alamofire не работает для этого сайта

Я новичок в ios/swift devel. Я использую Alamofire для получения данных с помощью следующего кода:

let user = "abc"
let password = "def"

Alamofire.request(.GET, "https://wis.fit.vutbr.cz/FIT/st/get-courses.php")
        .authenticate(user: user, password: password)
        .responseJSON { response in
            debugPrint(response)
    }

Тем не менее, я продолжаю получать эту ошибку:

NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9813) FAILURE: Error Domain=NSURLErrorDomain Code=-1202 "The certificate for this server is invalid. You might be connecting to a server that is pretending to be “wis.fit.vutbr.cz” which could put your confidential information at risk." UserInfo={NSLocalizedDescription=The certificate for this server is invalid. You might be connecting to a server that is pretending to be “wis.fit.vutbr.cz” which could put your confidential information at risk., NSLocalizedRecoverySuggestion=Would you like to connect to the server anyway?, _kCFStreamErrorDomainKey=3, NSUnderlyingError=0x7974ccd0 {Error Domain=kCFErrorDomainCFNetwork Code=-1202 "(null)" UserInfo={_kCFStreamPropertySSLClientCertificateState=0, _kCFNetworkCFStreamSSLErrorOriginalValue=-9813, _kCFStreamErrorCodeKey=-9813, _kCFStreamErrorDomainKey=3, kCFStreamPropertySSLPeerTrust=<SecTrustRef: 0x797faf00>, kCFStreamPropertySSLPeerCertificates=<CFArray 0x797f7580 [0x94f098]>{type = immutable, count = 2, values = ( 0 : <cert(0x797f8930) s: wis.fit.vutbr.cz i: Brno University of Technology CA> 1 : <cert(0x797fa2a0) s: Brno University of Technology CA i: Brno University of Technology CA> )}}}, _kCFStreamErrorCodeKey=-9813, NSErrorFailingURLStringKey=https://wis.fit.vutbr.cz/FIT/st/get-courses.php, NSErrorPeerCertificateChainKey=<CFArray 0x797f7580 [0x94f098]>{type = immutable, count = 2, values = ( 0 : <cert(0x797f8930) s: wis.fit.vutbr.cz i: Brno University of Technology CA> 1 : <cert(0x797fa2a0) s: Brno University of Technology CA i: Brno University of Technology CA> )}, NSErrorClientCertificateStateKey=0, NSURLErrorFailingURLPeerTrustErrorKey=<SecTrustRef: 0x797faf00>, NSErrorFailingURLKey=https://wis.fit.vutbr.cz/FIT/st/get-courses.php}

Я также отключил ATS в Info.plist, так как это кажется распространенной проблемой на iOS 9.0.

Я получаю эту ошибку, даже когда пытаюсь получить данные с https://www.fit.vutbr.cz/ Я полностью потерян в этом.

1 ответ

Это не связано с NSAppTransportSecurity,

Похоже, этот сайт имеет либо самозаверяющий, либо общий сертификат, iOS отклоняет запрос, потому что не может проверить сертификат. Если вы являетесь администратором веб-сайта, тогда - используйте соответствующий сертификат. Если существует версия "http" этого сайта, вы может использовать это, в противном случае вы должны принять этот сертификат, который в данный момент недоступен через Alamofire, вы можете взглянуть на эту тему - Как реализовать самозаверяющие сертификаты в Alamofire?

Другие вопросы по тегам