@eskimo We are having some intermittent and random SSL Handsake Errors with an HTTPS request:
Connection 5: received failure notification
Connection 5: failed to connect 3:18,446,744,073,709,541,800, reason 18,446,744,073,709,551,615
Connection 5: encountered error(3:18,446,744,073,709,541,800)
Task <2B22A105-33BD-4291-8749-40EEF62C50EC>.<1> HTTP load failed, 0/0 bytes (error code: 18,446,744,073,709,550,416 [3:18,446,744,073,709,541,800])
Task <2B22A105-33BD-4291-8749-40EEF62C50EC>.<1> finished with error [18,446,744,073,709,550,416] 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=(
"<cert(0x11482c000) s: *.xxxxx.com i: GeoTrust TLS RSA CA G1>",
"<cert(0x1128bac00) s: GeoTrust TLS RSA CA G1 i: DigiCert Global Root G2>"
One of our engineers is seeing TLS 1.0 requests but we are using URLSession with iOS 16 or 17. From what I can see, this should result in TLS 1.2+ request. In fact, the proxy captures and network package captures are showing TLS 1.2+ requests. Also, I saw this posting that has the same error codes saying it was an HTTP/1.1 vs. HTTP/2.0 problem with the server:
https://forums.developer.apple.com/forums/thread/709042
So what would be the best way to track this down and is there any documentation about the "dance" that URLSession goes thru to determine what protocol versions of HTTP and TLS to use when making an HTTPS request? Is there utilities to query the web server to see what versions of HTTP/1.1 or HTTP/2.0 are supported?
BTW - I am not seeing any low level networking calls that would bypass ATS minimum TLS version of 1.2.