2013-04-02 46 views
16

Tôi đang tạo ứng dụng để đăng nhập vào trang web aspx qua HTTPS bằng cách chuyển thông tin xác thực đăng nhập vào phương thức đăng bài. Khi kiểm tra phản hồi bằng cách sử dụng Charles Proxy, tôi có thể thấy lỗi SSL Handshake từ seal.verisign.com, sau đó tôi được đưa trở lại trang đăng nhập. Tôi không chắc mình cần phải làm gì để giải quyết vấn đề này.Bắt tay SSL ứng dụng iOS không thành công

Tôi đang thử nghiệm điều này trong trình mô phỏng iPhone.

Tôi không có quyền truy cập vào triển khai máy chủ.

Bất kỳ ý tưởng nào?

Cảm ơn bạn!

Trả lời

1

Có thể máy chủ không có chứng chỉ hợp lệ cho url bạn đang sử dụng. Bạn đã kiểm tra?

Nếu bạn thử url bằng trình duyệt, nó có cảnh báo cho bạn không?

12

Có lẽ thử nghiệm trên thiết bị thực tế sẽ cung cấp thông tin chi tiết hơn?

Để làm điều đó trong Charles:

  1. Chuyển đến Proxy: Cài đặt Proxy ...
  2. tab Proxies: Nhập "8888" tại cảng HTTP Proxy: Trường
  3. SSL Tab: đảm bảo "Enable SSL Ủy quyền" là trên

trên máy dev của bạn:

  1. Tùy chọn hệ thống Goto: Mạng: Wifi: Nâng cao: Tab TCP/IP: Lưu ý địa chỉ IPV4: (tức là 10.0.1.101)

On iDevice của bạn:

  1. Chuyển đến http://charlesproxy.com/charles.crt từ thiết bị của bạn và tải về Charles chứng chỉ SSL
  2. Okay giấy chứng nhận là đáng tin cậy (hãy chắc chắn để vô hiệu hóa hoặc gỡ bỏ nó khi bạn đang đã hoàn thành)
  3. Chuyển đến ứng dụng Cài đặt: Wifi: Chọn nút tiết lộ chi tiết (nút tròn màu xanh lam với mũi tên màu trắng) cho mạng của bạn
  4. Dưới Proxy HTTP, chọn "Thủ công"
  5. Nhập địa chỉ từ bước (máy dev 1.) vào trường Server, và số cổng từ bước (charles 2.)

Cuối cùng:

  1. Restart Charles
  2. Run Safari trên iDevice của bạn để kiểm tra. Điều này sẽ nhắc Charles hiển thị một hộp thoại để cho phép hoặc từ chối proxy SSL. Rõ ràng cho phép và bạn nên tốt để đi.

More Info tại trang web của Charles: http://www.charlesproxy.com/documentation/proxying/ssl-proxying/

Ngoài ra, là bạn nhận được một phản ứng với kết nối: (NSURLConnection *) kết nối didReceiveAuthenticationChallenge: (NSURLAuthenticationChallenge *) phương pháp thử thách?

+1

Bước 1 của "Trên iDevice" là điều tôi không biết và chắc chắn đã tiết kiệm cho tôi một vài giờ. Cảm ơn. – dezinezync

0

Bạn phải cài đặt chứng chỉ SSL trên thiết bị di động.

Tìm kiếm trực tuyến về cách cài đặt chứng chỉ SSL cho Charles Proxy.

+1

Xin lưu ý rằng [khuyến khích tự xúc tiến không được phép ở đây] (https://stackoverflow.com/help/behavior). Tôi đề nghị bạn chỉnh sửa các liên kết đến blog của bạn ra khỏi câu trả lời của bạn. Chúng chỉ được phép trong trang tiểu sử của bạn. –

3

Bạn cần cài đặt chứng chỉ SSL để giải quyết vấn đề này.

Thực hiện theo các bước sau

  1. mở Safari trình duyệt trên iOS Simulator

  2. Loại "www.charlesproxy.com/getssl" trong thanh địa chỉ

  3. Cài đặt SSL chứng nhận
  4. Restart Charles Proxy
+1

http: // chls.pro/ssl là URL tắt – Vaiden

5

Nếu cài đặt giấy chứng nhận vẫn không giúp bạn, sau đó nó có thể là do SSL Ghim cho.

Từ charlesproxy.com:

SSL Pinning Lưu ý rằng một số ứng dụng thực hiện ghim giấy chứng nhận SSL có nghĩa là họ đặc biệt xác nhận các chứng chỉ gốc. Vì ứng dụng tự xác minh chứng chỉ gốc nên ứng dụng sẽ không chấp nhận chứng chỉ của Charles và sẽ không kết nối được. Nếu bạn đã cài đặt thành công chứng chỉ SSL gốc của Charles và có thể duyệt các trang web SSL bằng cách sử dụng SSL Proxying trong Safari, nhưng một ứng dụng không thành công, thì SSL Pinning có thể là vấn đề.

+0

có cách nào để giải quyết vấn đề ghim SSL với Charles Proxy không? – tingason

57

Trên iOS> = 10.3, sau khi cài đặt chứng Charles Proxy (theo @ ashish-Verma câu trả lời xuất sắc của), bạn cũng cần phải kích hoạt nó thông qua Cài đặt ->chung ->Về - >Giấy chứng nhận ủy thác Cài đặt:

Enable SSL root certificate on iOS 10.3 and up

Full thiết lập ở đây: http://www.devsbedevin.com/debugging-ios-ssl-traffic/

+4

Cảm ơn bạn rất nhiều !!! lãng phí nhiều thời gian với điều này – schirrmacher

+2

Cảm ơn. lãng phí vài giờ vì không biết bước này –

+1

Cảm ơn! Rất nhiều đánh giá cao. Siêu hữu ích. – petezurich

0

Xóa tất cả thông tin xác thực người dùng cũ, sau đó Cài đặt lại chứng chỉ ssl mới.

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