Chúng tôi có một ứng dụng iOS sử dụng UIWebView để hiển thị nội dung. Chúng tôi tải nó lên với dữ liệu có mã trông giống như sau:Bỏ qua Chứng chỉ Máy chủ Không hợp lệ với UIWebView
NSURL *url = [NSURL URLWithString:myURLString];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[_webView setDelegate:self];
[_webView loadRequest:request];
Điều này được sử dụng để làm việc tốt với yêu cầu HTTP, nhưng bây giờ chúng tôi đang sử dụng HTTPS đối với máy chủ có chứng chỉ SSL tự ký. Khi ở trên được điều hành, phương pháp webView:didFailLoadWithError:
đại biểu được gọi là, với lỗi này:
The certificate for this server is invalid. You might be connecting to a server that is pretending to be "blah.blah.blah.com" which could put your confidential information at risk."
Tôi muốn chỉ đơn giản là bỏ qua giấy chứng nhận hợp lệ và tiếp tục với các yêu cầu, như người ta có thể làm gì trong Mobile Safari.
Tôi đã xem cách khắc phục sự cố này khi sử dụng NSURLConnection
(xem HTTPS request on old iphone 3g, ví dụ), nhưng bạn có thể làm gì với số UIWebView
?
Tôi tưởng tượng rằng tôi có thể làm lại mã để nó sử dụng NSURLConnection
để thực hiện yêu cầu và sau đó đặt kết quả vào chế độ xem web bằng cách gọi phương thức loadHTMLString:baseURL:
của chúng tôi, nhưng sẽ phức tạp hơn khi các trang có hình ảnh, CSS, JavaScript, v.v. Có cách nào dễ hơn không?
Cách sử dụng cách tiếp cận này sẽ khiến ứng dụng của bạn từ chối bởi AppStore. – Franklin
Thật hoàn hảo khi sử dụng chứng chỉ máy chủ lưu trữ cục bộ tự ký. Tôi bao quanh tất cả với '#if DEBUG' để không bị từ chối. – bendytree