Alamofire和PEM证书

Alamofire和PEM证书,alamofire,Alamofire,我有一个.pem文件,它将通过curl的--cert参数成功连接到我的网站。然后我将其转换为der文件: openssl x509-通知PEM-输出DER-输入client.PEM-输出cert.DER 然后我将cert.der加载到我的项目中,现在我正尝试将其用于Alamofire,如下他们主页上的示例: 让serverTrustPolicy=serverTrustPolicy.PinCertificates( 证书:ServerTrustPolicy.certificatesInBundle

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

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

然后我将cert.der加载到我的项目中,现在我正尝试将其用于Alamofire,如下他们主页上的示例:

让serverTrustPolicy=serverTrustPolicy.PinCertificates(
证书:ServerTrustPolicy.certificatesInBundle(),
validateCertificateChain:正确,
验证主机:对
)
让policyManager=ServerTrustPolicyManager(策略:[“my.domain.com”:serverTrustPolicy])
manager=Alamofire.manager(配置:配置,serverTrustPolicyManager:policyManager)
请求(.GET,url,参数:params,编码:.urlcodedinurl,头:nil)
.验证(使用凭据:凭据)
.validate()
A.responseJSON先生{
当它运行时,它只是失败了,我得到一个“取消”作为错误的localizedDescription,这是Alamofire在身份验证失败时所做的


我做错了什么?

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

话虽如此,我假设在本例中,您正在接收一个
nsurauthenticationchallenge
,其保护空间具有类型为
.nsurauthenticationmethodclientcertificate
的身份验证方法。在这些情况下,您需要评估质询的主机,然后使用
credentialWithIdentity:certificates:persistence:
API。通过将此凭据传递给完成处理程序,客户端证书应发送到服务器以验证连接。可以找到更多信息

客户端证书身份验证(NSURLAuthenticationMethodClientCertificate)需要系统标识和与服务器进行身份验证所需的所有证书。使用credentialWithIdentity创建NSURLCredential对象:证书:持久性:


我以前从未真正需要使用这种类型的身份验证。您需要使用任务覆盖闭包来覆盖身份验证挑战
SessionDelegate
闭包以使其正常工作。

显示了我正在做的事情。这就是我想到进行证书身份验证的原因。基本上,OAuth的设置和管理非常困难证书路由确保您不会因为某人使用“密码”作为密码而受到危害。不完全确定如何覆盖委托。您能举个小例子吗?嗨,我正在尝试做同样的事情,我创建了csr,将其发送到服务器,然后获得了客户端证书…现在我需要将其合并,您是如何编程的凯莉?你能帮帮我吗?谢谢