我有一个iOS应用程序,将分发给多个客户,每个客户都使用自己的网络基础设施.我想添加一些证书固定功能,但我需要以动态方式进行,因为我无法发送带有cert/pubkey捆绑的应用程序,因为这样做需要为每个客户提供不同的构建.
我的想法是在应用启动时查询每个客户端配置的HTTPS服务器,获取证书,可能提取公钥然后固定它.
是否可以在Swift或Objective-C中执行此操作?我无法找到相关的代码示例或文档.
我正在使用AFNetworking开发建立HTTPS连接的iPhone应用程序,我想使用我可以定义的自签名证书或可信证书,但我在AFNetworking中找不到任何功能(API)可以做到这一点.
我看到了这个页面:如何使用NSURLConnection连接SSL以获取不受信任的证书?.但我想知道如何分配cer文件?
谢谢.
我正在尝试通过上传照片到我的网络服务器AFHTTPRequestOperation.这是我的AFHTTPSessionManager.通过这个所有的http请求manager都很完美.
- (AFHTTPSessionManager *)manager
{
if (_manager == nil) {
_manager = [[AFHTTPSessionManager alloc] initWithBaseURL:[NSURL URLWithString:@"https://my.domain.com/api/v2"]];
[_manager.requestSerializer setAuthorizationHeaderFieldWithUsername:@"username" password:@"password"];
AFSecurityPolicy *policy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeNone];
policy.allowInvalidCertificates = YES;
_manager.securityPolicy = policy;
}
return _manager;
}
Run Code Online (Sandbox Code Playgroud)
但是当我尝试上传带有进度处理的照片时:
- (void)photoSend:(UIImage *)photo
toUsers:(NSArray *)users
completion:(CompletionHandler)completion
progress:(ProgressionHandler)progress
{
NSDictionary *params = @{
@"token":self.token,
@"to_usernames":[users componentsJoinedByString:@","],
};
NSString *urlString = [[NSURL URLWithString:@"photo/send" relativeToURL:self.manager.baseURL] absoluteString];
NSMutableURLRequest *request = [self.manager.requestSerializer multipartFormRequestWithMethod:@"POST" URLString:urlString parameters:params constructingBodyWithBlock:^(id <AFMultipartFormData> formData)
{
[formData appendPartWithFileData:UIImageJPEGRepresentation(photo,0.8)
name:@"photo"
fileName:@"image.jpg"
mimeType:@"image/jpg"]; …Run Code Online (Sandbox Code Playgroud)