并提前致谢。iOS应用突然无法通过HTTPS连接IPv6后更改
一切都在我的应用程序,这是基本完成的伟大工作。应用程序已完成,并将自定义VPS服务器设置为后端。然后,阅读Apple提交指南,我确保我的服务器兼容IPv6。
现在突然间我无法通过HTTPS连接到我的服务器。它仍然可以通过HTTP连接(如果我返回并更改网址)。此外,我能够在IPv6更改之前通过HTTPS进行连接。
现在我得到这个错误在Xcode控制台:
--- NSURLConnection的/ CFURLConnection HTTP加载失败(kCFStreamErrorDomainSSL,-9813)---
我一直在阅读有关解决方法的其他职位,但我想保持我的应用程序合法。它之前正在使用HTTPS,我不明白为什么IPv6更改会导致此问题。我知道我可以修改应用程序传输安全密钥,但是我希望这可以用于制作,并且我不希望苹果拒绝。
它不是一个自签名证书,并且所有内容都在手边完全有效。
我联系了我的服务器公司,他们不知道是什么问题。我正在使用NSURLSession,并且一个典型的连接看起来像这样(除了你在下面看到之外,我还没有实现任何NSURLSession委托方法或自定义)。
//VALUES TO BE POSTED
NSMutableString *post = [NSMutableString stringWithFormat:@"u=%@&p=%@", username, password];
//PERCENT ESCAPE THE URL
[post setString:[post stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
//CONVERT POST VALUES TO DATA
NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
//RETRIEVE LENGTH OF DATA FOR PURPOSES OF POST HEADER
NSString *postLength = [NSString stringWithFormat:@"%d", (int)[postData length]];
//BUILD THE URL REQUEST
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:[NSURL URLWithString:@"https://www.example.com/"]];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setHTTPBody:postData];
//CREATE SESSION FOR SERVER CONTACT
NSURLSessionDataTask *sessionTask = [[NSURLSession sharedSession] dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
AND SO ON....
你的代码看起来很简单。我建议在StackOverflow的兄弟网站serverfault.com上询问如何验证您的IPv6 + TLS设置是否正确并正常工作。 –