2012-01-23 35 views
9

Tôi tương đối mới đối với điện thoại và gần đây tôi đã thiết lập HTTPS/SSL trên máy chủ apache cửa sổ của mình bằng chứng chỉ tự ký và đang cố thực hiện yêu cầu bài đăng HTTPS ajax . Yêu cầu hoạt động tốt khi chạy trong trình duyệt nhưng không thành công khi chạy trong điện thoại. Tôi đã thử cài đặt android: debuggable thành false nhưng điều đó không khắc phục được sự cố. Tôi cũng đã thực hiện một số nghiên cứu và có vẻ như điện thoại không hỗ trợ các yêu cầu ajax HTTPS vì vậy tôi nhầm lẫn là tại sao yêu cầu không thành công.Gọi điện thoại đến máy chủ HTTPS với chứng chỉ tự ký không thành công

Có ai biết tại sao điều này có thể là?

+1

Tôi cũng đã gặp phải vấn đề này. Vấn đề duy nhất là dịch vụ web của bạn được tự ký. Nếu và khi bạn nhận được một cert có chữ ký chính xác, đây sẽ không phải là vấn đề. Bây giờ bạn chỉ có thể sử dụng HTTP để kiểm tra. – sciritai

+0

Cảm ơn bạn! Vấn đề là chứng chỉ tự ký và nó không phải là một vấn đề với một cert có chữ ký chính xác. – user1014759

Trả lời

8

Đây là trích dẫn từ Joe Bowser người đã viết đoạn code để cho phép tự ký Certs trên PhoneGap Android:

  1. Nếu bạn đang làm phát triển: android: debuggable = "true" trong biểu hiện, bạn nên cho phép trình duyệt yêu cầu dữ liệu từ máy chủ với chứng chỉ SSL tự ký hoặc không hợp lệ
  2. Nếu bạn đang phát hành ứng dụng, bạn nên xóa android: debuggable = "true" (Android Market sẽ không cho phép bạn phát hành này anyway) và bạn sẽ KHÔNG thể gửi dữ liệu đến máy chủ với chứng chỉ SSL không hợp lệ
  3. Nếu bạn chưa đặt cờ này, mặc định sẽ là mặc định, nghĩa là bạn sẽ không thể gửi dữ liệu đến máy chủ có chứng chỉ tự ký

Vì vậy, có vẻ như bạn sẽ có thể thực hiện những gì bạn muốn bằng cách đặt android: debuggable = "true". Nếu điều đó không hiệu quả đối với bạn, chúng tôi sẽ cần tạo một kịch bản sinh sản từ bạn, phiên bản PhoneGap và phiên bản Android bạn đang sử dụng.

Có lẽ tốt nhất để nâng cao một lỗi trong Jira đối với chúng tôi:

https://issues.apache.org/jira/browse/CB#selectedTab=com.atlassian.jira.plugin.system.project%3Aissues-panel

+1

có giải pháp nào cho iOS không? – Charles

+0

@charles: [gợi ý này] (http://stackoverflow.com/a/9658166/814416) đã làm việc tốt nhất cho tôi. – sherb

+1

Điều này dường như không hoạt động với Android Lollipop – AlexLopezIT

1

Tôi đã mất nhiều giờ về vấn đề này cho đến khi tôi phát hiện ra rằng có một quick and dirty fix càng tốt. Nó liên quan đến việc ghi đè CordovaWebViewClient để bỏ qua lỗi chứng chỉ.

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