Tag: SSL

SSL固定和AFNetworking 2.5.0的问题(NSURLErrorDomain错误-1012。)

我们一直在使用AFNetworking 2.5.0来确保我们的应用程序使用SSL的networking连接。 我们使用自签名证书颁发机构,并使用固定证书实施自定义安全策略。 我们已经testing了不less由AFNetworking提供的configuration,但到目前为止还没有幸运。 我们收到的错误消息是: 2015-01-05 19:03:07.191 AppName [9301:319051]更新用户旅程时出错。 (NSURLErrorDomain error -1012。)“UserInfo = 0x7ae056b0 {NSErrorFailingURLKey = https://api.XXX.com/XXX/XXX/,NSErrorFailingURLStringKey = https://api.XXX.com/XXX/XXX/ } 我们的证书可以在其他客户端(如cURL和Android)上正常工作。 当使用HTTP时,我们的实现工作也很好。 有没有人知道与固定证书和AFNetworking有关的任何问题? 如果是的话,我们将非常感谢你可能有的任何指针。 这是实现的一部分: + (AFSecurityPolicy*)customSecurityPolicy { AFSecurityPolicy *securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeNone]; NSString *cerPath = [[NSBundle mainBundle] pathForResource:@"filename" ofType:@"der"]; NSData *certData = [NSData dataWithContentsOfFile:cerPath]; [securityPolicy setAllowInvalidCertificates:NO]; [securityPolicy setValidatesCertificateChain:NO]; [securityPolicy setPinnedCertificates:@[certData]]; return securityPolicy; } + […]

iOS – 以编程方式安装SSL证书

我正在写一个phonegap插件,将CA根证书和用户证书安装在应用程序钥匙串中。 以下是用于安装证书的代码: NSData *PKCS12Data = [[NSData alloc] initWithContentsOfFile:certpath]; CFDataRef inPKCS12Data = (CFDataRef)PKCS12Data; CFStringRef password = (CFStringRef)certPassword; const void *keys[] = { kSecImportExportPassphrase }; const void *values[] = { password }; CFDictionaryRef optionsDictionary = CFDictionaryCreate(NULL, keys, values, 1, NULL, NULL); CFArrayRef items = CFArrayCreate(NULL, 0, 0, NULL); OSStatus securityError = SecPKCS12Import(inPKCS12Data, optionsDictionary, &items); if (securityError == […]

iOS客户端证书和移动设备pipe理

我们的客户希望使用MDM(移动设备pipe理)解决scheme(MobileIron)将客户端证书安装到企业iOS设备上,以便仅限企业设备访问某些企业Web服务。 MobileIron将客户端证书安装到设置>常规>configuration文件 (这是iOS中的证书的默认位置),并且当企业Web服务挑战一个证书时,Safari可以使用此证书进行响应。 但是我需要从一个自定义应用程序中发生相同的事情。 当我们的应用程序获得证书的挑战时,我需要能够通过设置>常规>configuration文件中的证书进行响应。 我有一个与我们的应用程序捆绑在一起的证书,以及我们的应用程序存储在其自己的钥匙串中的证书进行响应的示例,但是我没有在设置>常规>configuration文件中使用设备上安装的证书进行响应的示例。 任何人都可以向我解释更多关于什么NSURLAuthenticationChallengeSender协议方法-performDefaultHandlingForAuthenticationChallenge:做什么? 默认处理是否意味着iOS有效地代表应用程序回应挑战? 此响应是否可以包含存储在设置>常规>configuration文件中的客户端证书? 更新 如果MDM可以将客户端证书安装到应用程序钥匙链中,那将是完美的。

iOS:如何以编程方式从应用程序中的私钥和x509certificate创buildPKCS12(P12)密钥库?

这个问题显然是相似的,但没有任何答案:以编程方式为iPhone创build一个x509证书,而不使用OpenSSL 在我们的应用程序(服务器,客户端)中,我们正在实现客户端身份validation(基于X509Certificate的SSL)。 我们已经有一种方法来生成一个keypair ,创build一个PKCS10 Certificate Signing Request ,由self-signed CA并创build一个X509Certificate ,并将其发送回去。 但是,要在SSL请求中使用此证书,必须将private key和X509Certificate导出到PKCS12 (P12) keystore 。 有没有人知道如何做到这一点,或者即使有可能? 客户端必须生成P12文件(我们不想泄露私钥),客户端运行的是iOS,并且是移动设备。 该解决scheme使用BouncyCastle(SpongyCastle)的Android工作,但我们没有发现任何iOS。 编辑:在Java中,这个导出是由以下内容完成的: ByteArrayOutputStream bos = new ByteArrayOutputStream(); KeyStore ks = KeyStore.getInstance("PKCS12", BouncyCastleProvider.PROVIDER_NAME); ks.load(null); ks.setKeyEntry("key-alias", (Key) key, password.toCharArray(), new java.security.cert.Certificate[] { x509Certificate }); ks.store(bos, password.toCharArray()); bos.close(); return bos.toByteArray();

使用证书创buildSSL连接

我有作为文件提供给我的ssl证书(.cer)。 我添加它捆绑,并希望使用它与服务器通信。 我用苹果提供的代码: – (void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge{ DLog(@"didReceiveAuthenticationChallenge : %@",challenge); if ([challenge.protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust]) { NSString *filePath = [[NSBundle mainBundle] pathForResource:@"certificate" ofType:@"cer"]; NSData *certData = [NSData dataWithContentsOfFile:filePath]; CFDataRef myCertData = (__bridge CFDataRef)certData; SecCertificateRef myCert = SecCertificateCreateWithData(NULL, myCertData); SecPolicyRef myPolicy = SecPolicyCreateBasicX509(); // 3 SecCertificateRef certArray[1] = { myCert }; CFArrayRef myCerts = CFArrayCreate(NULL, (void *)certArray, […]

iOS 9.3:发生SSL错误,无法build立与服务器的安全连接

我正在跟随自签名证书的错误 错误域= NSURLErrorDomain代码= -1200“发生SSL错误,无法build立与服务器的安全连接。 同时testing我的一个演示应用程序的Web服务 iOS 9.3 XCode 7.3 Swift 2.2 Alamofire 3.3.0 和本地服务器: https : //filename.hostname.net 注意: 在假设它重复之前,我会要求请一路阅读,甚至同样我已经报告给苹果开发论坛 使用Alamofire库 func testAlamofireGETRequest() -> Void { Alamofire.request(.GET, "https://filename.hostname.net/HelloWeb/service/greeting/john") .responseJSON { response in print("Response JSON: \(response.result.value)") } } 使用NSURLSession func testNSURLSessionRequest() -> Void { let session = NSURLSession.sharedSession() let urlString = "https://filename.hostname.net/HelloWeb/service/greeting/john" let url = NSURL(string: urlString) […]

支持服务器的iOS 9 ATS SSL错误

我安装了Xcode 7,并尝试在iOS 9下运行我的应用程序。我得到臭名昭着的错误: Connection failed! Error – -1200 An SSL error has occurred and a secure connection to the server cannot be made. Connection failed! Error – -1200 An SSL error has occurred and a secure connection to the server cannot be made. 事情是我的服务器支持TLSv1.2,我正在使用NSURLSession 。 那可能是什么问题?

SecCertificateRef:如何获取证书信息?

我有一个证书(SecCertificateRef),我可以检查它是否有效,我可以使用SecCertificateCopySubjectSummary提取“摘要”。 什么是“总结”? 我不理解术语“一个string,其中包含对证书内容的可读摘要”。 在Apple文档中。 我认为,他们的意思是证书中的“CN”,对吗? 有什么方法可以从SecCertificateRef中获取清晰的X509信息吗? 转换为钥匙串对象有帮助吗? 我想要这样的东西,我特别关注“CN”,将它与我提交的URL进行比较,以避免中间人攻击。 (或者有更好的主意?) 那就是我想要的: Version: 3 (0x2) Serial Number: 1 (0x1) Signature Algorithm: md5WithRSAEncryption Issuer: C=XY, ST=Austria, L=Graz, O=TrustMe Ltd, OU=Certificate Authority, CN=CA/Email=ca@trustme.dom Validity Not Before: Oct 29 17:39:10 2000 GMT Not After : Oct 29 17:39:10 2001 GMT Subject: C=DE, ST=Austria, L=Vienna, O=Home, OU=Web Lab, CN=anywhere.com/Email=xyz@anywhere.com Subject Public […]

如何在uiwebview中调用https url?

我有一个HTTPSurl。 它在iPhone Safari中加载,但在UIWebView不起作用。 错误是: NSURLConnection / CFURLConnection HTTP加载失败(kCFStreamErrorDomainSSL,-9813) 我该如何解决这个问题?

如何使用AFNetworking比较SSL证书

在我的iPhone应用程序中,我使用带有自签名SSL证书的https连接从服务器下载合理的数据(用户名和密码)。 这个应用程序仅供私人使用,并不意味着生产。 我正在使用AFNetworkingpipe理https连接,但是,由于我的证书没有从CA签名,为了使其工作,我不得不添加以下内容到AFURLConnectionOperation类的头部: #define _AFNETWORKING_ALLOW_INVALID_SSL_CERTIFICATES_ 1 但有了这个我的应用程序将允许任何证书。 有没有办法只允许从我的服务器的证书,可能捆绑在应用程序,并与服务器提供的证书在HTTPS连接提供的证书进行比较? 如果可能的话,在安全方面会有什么显着的优势吗? 我对安全非常陌生,我有些困惑。