У меня есть очень простой веб-сервер tomcat, который я настроил для работы с TLSv1.2, что подтверждается с помощью curl
$ curl --verbose https://{my-servers-dns}:8443/
* Trying {my-servers-ip-address} ...
* Connected to dev.a-b.fit ({my-servers-ip-address}) port 8443 (#0)
* TLS 1.2 connection using TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
* Server certificate: {my-servers-dns}
* Server certificate: Go Daddy Secure Certificate Authority - G2
* Server certificate: Go Daddy Root Certificate Authority - G2
> GET / HTTP/1.1
...
Однако, если я запускаю этот очень простой быстрый код, чтобы сделать тот же запрос GET
let url = NSURL(string: "https://{my-servers-dns}:8443/")!
let session = NSURLSession.sharedSession()
let task = session.dataTaskWithURL(url, completionHandler: {(data, response, error) -> Void in
if let response = response {
print("Response: \(response)")
}
else {
print("Response: nil")
}
})
Когда я делаю это, я получаю следующие 2 ошибки
CFNetwork SSLHandshake failed (-9824)
NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9824)
Поиск этих ошибок в Google предполагает, что проблема в том, что мое приложение не может подключиться к TLSv1.2. Однако я бы подумал, что запрос curl показывает, что TLS 1.2 поддерживается.
https://www.google.com
работает нормально. - person James Robinson   schedule 11.06.2016