簡體   English   中英

通過Alamofire進行SSL固定不起作用

[英]SSL Pinning through Alamofire not working

通過Alamofire進行SSL固定時,我的項目遇到了一些問題。 問題在於,在另一個臨時創建的項目中,一切正常:如果啟用了Charles,則一切都會被阻止。

現在在這個項目中,即使我的證書不正確,它也會通過每個調用。

我以為問題可能出在我的PodFile導入的庫中,但是我不知道是哪個庫。

我在這里問是因為也許已經遇到了同樣的問題。

這是PodFile:

pod 'SideMenuController'
pod 'ScrollingStackContainer', '~> 0.5'
pod 'SwiftLocation'
pod 'ObjectMapper'
pod 'ActionSheetPicker-3.0'
pod 'Stripe'
pod 'CocoaMQTT'

pod 'SwiftMessages', '5.0.1'
pod 'PusherSwift'
pod 'CryptoSwift', '~> 0.7.2'
pod 'TTSegmentedControl', '~> 0.3.1'
pod 'Fabric'
pod 'Crashlytics'
pod 'KMPlaceholderTextView', '~> 1.3.0'

pod 'FlowTables',       '~> 0.8.2'

pod 'FBSDKLoginKit'

pod 'KeychainAccess',           '~> 3.1.1'
pod 'ios-ntp',                  '~> 1.1.9'
pod 'MMMaterialDesignSpinner',  '~> 0.2.5'

pod 'Alamofire', '4.7.2'
pod 'Kingfisher',  :git => 'https://github.com/onevcat/Kingfisher.git', :tag => '4.9.0'

當然,使用Charles時,所有內容都會被阻止:這意味着證書固定有效,並且該應用程序不接受已被攔截的響應(在本例中為Charles)。 您有兩種選擇:

  1. 禁用調試構建的證書固定,以便您可以使用Charles。
  2. 導出Charles SSL證書,並將其包含在應用程序的調試版本中,使其成為固定證書之一。 確保此證書不包含在您的發行版本中。

我發現了問題:

在我的PodFile中,還安裝了CocoaDebug,該工具可幫助您調試網絡呼叫。 不幸的是,它覆蓋了我的自定義SessionManager,也覆蓋了有關SSL證書固定的方法。

必須將其完全卸載,僅在構建中禁用它是不夠的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM