Tôi có một ứng dụng iOS sẽ được phân phối cho nhiều khách hàng, mỗi khách hàng sử dụng cơ sở hạ tầng mạng của riêng họ. Tôi muốn thêm một số khả năng ghim giấy chứng nhận, nhưng tôi cần phải làm điều đó theo kiểu động vì tôi không thể gửi ứng dụng với gói cert/pubkey, vì làm như vậy sẽ yêu cầu một bản dựng khác cho từng khách hàng.Ghim chứng chỉ động
Ý tưởng của tôi là truy vấn máy chủ HTTPS được định cấu hình trên mỗi máy khách khi khởi động ứng dụng, nhận chứng chỉ, có khả năng trích xuất khóa công khai và sau đó ghim nó.
Có thể thực hiện điều này trong Swift hoặc Objective-C không? Tôi không thể tìm thấy các mẫu mã hoặc tài liệu có liên quan.
Bạn đã thử SSLPinningMode chưa? [this] (http://stackoverflow.com/questions/16613081/ssl-pinning-with-afnetworking) có thể hữu ích. Nếu bạn đang lập kế hoạch phân phối trên cửa hàng ứng dụng, tôi nghi ngờ nó sẽ được chấp nhận (phần về tải xuống và giải nén chứng chỉ). – jugutier
Đây là một ví dụ trong iOS Đẩy giới hạn: https://github.com/iosptl/ios7ptl/blob/master/ch14-Security/Connection/Connection/ConnectionViewController.m. Xem 'RNSecTrustEvaluateAsX509'. Nó bao gồm mã để trích xuất chứng chỉ từ kết nối. Sau đó, bạn có thể ghi chứng chỉ ra tệp và sau đó sử dụng các phương pháp ghim chuẩn như https://github.com/rnapier/RNPinnedCertValidator. –
Siêu liên kết không liên quan, nhưng @RobNapier bạn có đang lên kế hoạch phát hành phiên bản mới của Đẩy giới hạn cho iOS 10 không? – JAL