2016-01-14 21 views
5

My ứng dụng ion/cordova nay mang đến cho các lỗi khi sử dụng với HTTPS backendtrên iOS, trong ứng dụng lai ion, làm thế nào để vượt qua kiểm tra giấy chứng nhận (sử dụng chứng chỉ tự ký)

`The certificate for this server is invalid` 

Tôi đang ở môi trường phát triển của tôi, sử dụng chứng chỉ tự ký và sử dụng địa chỉ IP để kết nối với chương trình phụ trợ.

Tôi đã kiểm tra chứng chỉ bằng cách sử dụng openssl s_client và có vẻ hợp lệ. Như một vấn đề của thực tế tôi có thể sử dụng cùng một phụ trợ với phiên bản Android của ứng dụng lai này.

Có một số cài đặt plist hoặc khác Xcode để chấp nhận chứng chỉ tự ký hoặc bỏ qua kiểm tra này cùng nhau - tương tự như cài đặt NSAppTransportSecurity::NSAllowsArbitraryLoads?

--edit

Tôi có <access origin="*"/> trong tập tin config.xml tôi.

Thanks a lot

+0

Bạn đã tìm thấy giải pháp cho vấn đề này cho môi trường Android dev chưa? –

+0

Từ trải nghiệm của tôi - Android hoàn toàn không gặp vấn đề này (ít nhất là với Android 5.0). – st2rseeker

Trả lời

2

Bạn có thể thêm này vào cuối AppDelegate.m, nhưng chỉ dành riêng cho mục đích thử nghiệm, bạn nên loại bỏ nó trước khi thả các ứng dụng, táo có thể không chấp nhận các ứng dụng nếu nó có chứa mã mà

@implementation NSURLRequest(DataController) 
+ (BOOL)allowsAnyHTTPSCertificateForHost:(NSString *)host 
{ 
    return YES; 
} 
@end 
+0

awsome, làm việc trên ios 9 – vuhung3990

+2

Thật không may không hoạt động trên iOS 11. –

0

hãy thử thêm này để info.plist

<key>NSAppTransportSecurity</key> 
<dict> 
    <key>NSAllowsArbitraryLoads</key> 
    <true/> 
</dict> 

Bạn cũng có thể kiểm tra một số workaround here too !

+1

này được sử dụng để làm việc, nhưng không phải bất kỳ chi tiết! – Dinesh

+1

Tính năng này hoạt động đối với các chứng chỉ tin cậy không tuân thủ yêu cầu ATS táo mới hoặc cho kết nối http, nhưng đối với chứng chỉ tự ký, bạn phải sử dụng mã trên câu trả lời của tôi. – jcesarmobile

Các vấn đề liên quan