Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何在NSURL请求中附加TLS/SSL证书?_Ios_Objective C_Ssl_Nsurlrequest - Fatal编程技术网

Ios 如何在NSURL请求中附加TLS/SSL证书?

Ios 如何在NSURL请求中附加TLS/SSL证书?,ios,objective-c,ssl,nsurlrequest,Ios,Objective C,Ssl,Nsurlrequest,我需要与服务器通信,并且需要在每个NSURLRequest中附加一个自签名TLS证书 有办法吗?您的连接代理应该实现连接:canAuthenticateAgainstProtectionSpace:并回答YES。完成后,您的代理将收到连接:didReceiveAuthenticationChallenge: 要继续使用证书,该方法应回答NSURLCredential。使用您的证书创建其中一个 + (NSURLCredential *)credentialWithIdentity:(SecIden

我需要与服务器通信,并且需要在每个
NSURLRequest
中附加一个自签名TLS证书


有办法吗?

您的连接代理应该实现
连接:canAuthenticateAgainstProtectionSpace:
并回答YES。完成后,您的代理将收到连接:didReceiveAuthenticationChallenge:

要继续使用证书,该方法应回答NSURLCredential。使用您的证书创建其中一个

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

您的连接代理应该实现
连接:canAuthenticateAgainstProtectionSpace:
并回答YES。完成后,您的代理将收到连接:didReceiveAuthenticationChallenge:

要继续使用证书,该方法应回答NSURLCredential。使用您的证书创建其中一个

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

或者,您可以实现
连接:willSendRequestForAuthenticationChallenge:
(在iOS 5中提供),然后您只需要1个委托方法来进行身份验证,而不是2个。@martiner这不是让恶意用户非常容易修补的,重写连接:CanAuthenticationAgainstProtectionSpace并回答否,因此,应用程序不再像这样检查证书?@Tiago:iOS应用程序是代码签名的,修补它们(如果可能的话)并不是那么容易。很公平,尽管我也在考虑OSX方面,在OSX方面,应用程序并不总是代码签名的(因为这需要苹果开发许可证,这对OSX开发人员来说不是强制性的)。指南链接是断线的,您可以实现
连接:willSendRequestForAuthenticationChallenge:
(在iOS 5中提供),然后您只需要1个委托方法进行身份验证,而不是2个。@MartinR恶意用户修补、覆盖连接不是非常容易吗:CanAuthenticationAgainstProtectionSpace并回答否,因此,应用程序不再像这样检查证书?@Tiago:iOS应用程序是代码签名的,修补它们并不容易(如果可能的话)。很公平,尽管我也在考虑OSX方面,在OSX方面,应用程序并不总是代码签名的(因为这需要apple dev许可证,OSX dev并不强制要求)。指南链接已断开