如何在NSURLRequest中附加tls/ssl证书?

问题描述:

我需要与服务器进行通信,我需要为每个NSURLRequest附加一个自签名TLS证书。如何在NSURLRequest中附加tls/ssl证书?

有没有办法做到这一点?

Apple提供good guide here。换言之,您的连接代表应执行connection:canAuthenticateAgainstProtectionSpace:并回答YES。完成后,代表将收到connection:didReceiveAuthenticationChallenge:

要继续使用证书,该方法应该回答NSURLCredential。创建使用

+ (NSURLCredential *)credentialWithIdentity:(SecIdentityRef)identity certificates:(NSArray *)certArray persistence:(NSURLCredentialPersistence)persistence 
+0

或者那些与您的证书之一,可以实现'连接:willSendRequestForAuthenticationChallenge:'(iOS 5中可用),则需要进行身份验证,而不是2 – 2013-02-27 15:26:52

+0

@MartinR止跌仅1种委托方法”这对于恶意用户来说是非常容易修补的,覆盖连接:canAuthenticateAgainstProtectionSpace并回答NO,所以应用程序停止检查这样的证书吗? – Tiago 2016-09-26 18:35:37

+0

@Tiago:iOS应用程序是代码签名的,它不是很容易修补它们(如果可能的话)。 – 2016-09-26 18:37:32