2015-02-17 70 views
9

我是一個新手,但我有一個受MITM攻擊的應用程序。ssl在Swift中鎖定AlamoFire

經過我的一些研究,聽起來我需要做SSL Pining,即保留我的服務器公鑰/證書的副本,以便可以確定響應是否來自它。

我不知道如何做到這一點,我在Swift中使用AlamoFire來處理網絡。

回答

7

Alamofire現在實施了證書鎖定。 您所需要的文檔是在Readme.md

https://github.com/Alamofire/Alamofire

看到自己的示例實現:

let serverTrustPolicies: [String: ServerTrustPolicy] = [ 
    "test.example.com": .PinCertificates(
     certificates: ServerTrustPolicy.certificatesInBundle(), 
     validateCertificateChain: true, 
     validateHost: true 
    ), 
    "insecure.expired-apis.com": .DisableEvaluation 
] 

let manager = Manager(
    serverTrustPolicyManager: ServerTrustPolicyManager(policies: serverTrustPolicies) 
) 
+0

枚舉類型 'ServerTrustPolicy' 沒有情況 'PinCertificates';你的意思是'pinCertificates' – 2018-02-22 14:52:17