並提前致謝。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設置是否正確並正常工作。 –