Alamofire和PEM证书

石像鬼

我有一个.pem文件,它将通过curl的--cert参数成功连接到我的网站。然后,我将其转换为der文件:

openssl x509-通知PEM-通知DER-输入client.pem-输出cert.der

然后,将cert.der加载到我的项目中,现在按照他们主页上的示例,尝试将其与Alamofire一起使用:

    let serverTrustPolicy = ServerTrustPolicy.PinCertificates(
        certificates: ServerTrustPolicy.certificatesInBundle(),
        validateCertificateChain: true,
        validateHost: true
    )

    let policyManager = ServerTrustPolicyManager(policies: ["my.domain.com" : serverTrustPolicy])
    manager = Alamofire.Manager(configuration: configuration, serverTrustPolicyManager: policyManager)
    manager.request(.GET, url, parameters: params, encoding: .URLEncodedInURL, headers: nil)
        .authenticate(usingCredential: credential)
        .validate()
        .responseJSON {

当它运行时,尽管它只是失败了,但我得到了“取消”作为错误的localizedDescription,这是身份验证失败时Alamofire所做的事情。

我究竟做错了什么?

cnoon

Alamofire证书固定逻辑当前不支持此用例。它仅设计用于处理证书和公钥固定,而不用于处理用于向服务器进行身份验证的客户端证书。如果这是一个常见的用例,这是我们将来可以支持的东西。

话虽如此,我假设在这种情况下,您收到的是一个NSURLAuthenticationChallenge带有保护类型为的身份验证方法的保护空间.NSURLAuthenticationMethodClientCertificate在这些情况下,您需要评估挑战的宿主,然后NSURLCredential使用credentialWithIdentity:certificates:persistence:API创建一个通过将此凭据传递给完成处理程序,应将客户端证书发送到服务器以对连接进行身份验证。更多信息可以在这里找到

客户端证书身份验证(NSURLAuthenticationMethodClientCertificate)需要系统身份以及与服务器进行身份验证所需的所有证书。使用credentialWithIdentity:certificates:persistence:创建一个NSURLCredential对象。

我以前从未真正需要使用过这种身份验证。您需要SessionDelegate使用任务覆盖关闭来覆盖auth挑战关闭,以使此工作正常进行。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SSL / TLS证书管理(密钥,crt和pem)

来自分类Dev

如何从 .cer 获取 .crt 和 .pem 证书文件

来自分类Dev

通过 pem 文件、证书和用户进行身份验证

来自分类Dev

openssl:如何创建带有私钥,关联的公共证书和证书链一直到根证书的.pem文件?

来自分类Dev

信任自签名的PEM证书

来自分类Dev

带有pem证书的RestTemplate

来自分类Dev

Kafka不会以PEM证书开头

来自分类Dev

信任自签名的PEM证书

来自分类Dev

解密纯文本。PEM证书

来自分类Dev

如何使用mbedtls在libcurl中将PEM证书和私钥一起加载

来自分类Dev

在Android / iOS Keystore C#上存储私钥和证书(.pem)

来自分类Dev

Alamofire的无效证书,表单数据和HTTP标头数据

来自分类Dev

将证书从Pem转换为jks

来自分类Dev

如何从pem文件加载公共证书?

来自分类Dev

获取Google搜索ssl pem证书

来自分类Dev

如何验证Pem证书的密码短语

来自分类Dev

Firefox导入PEM证书链失败

来自分类Dev

获取谷歌搜索ssl pem证书

来自分类Dev

使用.pem证书注册Apple服务

来自分类Dev

cacert.pem-证书已过期

来自分类Dev

使用Pem证书解码ruby / jwt

来自分类Dev

.pem证书转换为可读格式

来自分类Dev

使用 openssl 或其他命令查看 PEM 证书文件(完整证书链)中的所有证书

来自分类Dev

如何从文件中加载C#中的.pem证书?

来自分类常见问题

如何以.pem格式保存证书中的公钥

来自分类Dev

从X.509证书中提取PEM公钥

来自分类Dev

在Tigase服务器中加载Pem证书文件

来自分类Dev

如何通过PHP发送带有pem证书的curl请求?

来自分类Dev

自动将PEM文件拆分为多个证书