繁体   English   中英

iOS 13 NSURLSession websocket 不使用 TLS 1.3

[英]iOS 13 NSURLSession websocket does not use TLS 1.3

我正在尝试在基于NSURLSession webSocketTaskWithRequest: websocket 连接上使用 TLS 1.3。 奇怪的是,它没有向服务器询问 TLS 1.3。 但是当我对 HTTPS 请求使用几乎相同的代码时,它使用 TLS 1.3 作为其请求。 知道如何为 websocket 正确使用 TLS 1.3 吗?

//HTTPS
NSURLSessionConfiguration *sessionConfig = [NSURLSessionConfiguration defaultSessionConfiguration];
sessionConfig.TLSMaximumSupportedProtocol = kTLSProtocolMaxSupported;
NSURLSession *session = [NSURLSession sessionWithConfiguration:sessionConfig 
                                                      delegate:self 
                                                 delegateQueue:[NSOperationQueue mainQueue]];

[request setURL:url];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response) {

...
}];

//WebSocket 
NSURLSessionConfiguration *config = [NSURLSessionConfiguration ephemeralSessionConfiguration];
config.TLSMaximumSupportedProtocol = kTLSProtocolMaxSupported;
NSURLSession *session = [NSURLSession sessionWithConfiguration:config
                                                          delegate:self
                                                     delegateQueue:[NSOperationQueue mainQueue]];
self.task = [session webSocketTaskWithRequest:request];
[self listen];
[self.task resume];

显然 Xcode 11.3.1 将使用 TLS 1.2 而不是 TLS 1.3。 我不确定为什么会发生这种情况……但是使用 Xcode 11.5 解决了我的问题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM