问题 ssl在斯威夫特阿拉莫火山中钉扎


我是一个新手,但我有一个受MITM攻击的应用程序。

经过一些研究后,我觉得我需要进行SSL Pining,即保留我的服务器公钥/证书的副本,以便确定响应是否来自它。

我不知道如何做到这一点,我在Swift中使用AlamoFire来处理网络。


2032
2018-02-17 22:25


起源



答案:


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)
)

10
2017-12-08 15:50



枚举类型'ServerTrustPolicy'没有'PinCertificates'案例;你的意思是'pinCertificates' - Can Aksoy


答案:


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)
)

10
2017-12-08 15:50



枚举类型'ServerTrustPolicy'没有'PinCertificates'案例;你的意思是'pinCertificates' - Can Aksoy


如下所示: https://github.com/Alamofire/Alamofire/issues/366

这当然是社区希望支持的东西,但它还没有坚实的时间框架。我暂时说,你会想继续使用AFNetworking,并密切关注Alamofire项目的新功能。


-1
2018-03-11 20:52