我有以下简单的代码连接到SSL网页
NSMutableURLRequest *urlRequest=[NSMutableURLRequest requestWithURL:url];
[ NSURLConnection sendSynchronousRequest: urlRequest returningResponse: nil error: &error ];
Run Code Online (Sandbox Code Playgroud)
如果证书是自签名的,那么它会出错.Error Domain=NSURLErrorDomain Code=-1202 UserInfo=0xd29930 "untrusted server certificate".有没有办法将它设置为接受连接(就像在浏览器中你可以按接受)或绕过它的方法?
https objective-c ssl-certificate ios app-transport-security
我正在编写一个phonegap插件,可以在app keychain中安装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 == 0) {
NSLog(@" *** Certificate install Success ***");
} else {
NSLog(@" *** Certificate install Failure ***");
}
Run Code Online (Sandbox Code Playgroud)
上面的代码工作正常(securityError等于0).但是,我正在获取这些错误:
unknown apsd[59] <Warning>: <APSCourier: 0xee1ba80>: …Run Code Online (Sandbox Code Playgroud) 我们正尝试在企业iOS应用中使用客户端SSL证书进行用户身份验证.
我们如何让这个工作?谢谢!
我正在为iOS应用程序进行一些自动化证书测试,并希望了解通过终端将根证书安装到设备上的方法.
目标是使整个证书安装过程自动化,无需用户交互.如果安装证书可以通过Mac上的GUI完成,那么通过Automator完成此操作是完全可以接受的.
我看过: iOS:在keychain中预先安装SSL证书 - 以编程方式,但它不适用,因为这是通过应用程序本身的Objective-C完成的.我想完全独立于应用程序.
我不相信如何通过命令行安装iOS开发的开发人员证书/私钥和配置文件?是适用的,因为它将开发证书安装到Mac的钥匙串而不是iOS设备的通用证书.
用证据回答"这是不可能的"也是完全可以接受的.
编辑1
根据@Rivera的建议,我试图使用Configurator的Prepare功能,但它太介入了:安装了新版本的iOS,设备无法使用约10分钟,需要用户交互等等.我只想做一个操作:安装证书.
进一步的研究表明,配置器没有CLI或脚本功能,除了可能会或可能不会在这里发现的一些黑客攻击.
我已经向Apple发了一张票,看看他们是否还有更多的信息.
编辑2
添加了这一行:"如果安装证书可以通过Mac上的GUI完成,那么通过Automator完成这项工作是完全可以接受的." 到主体问题.
ios ×4
certificate ×2
objective-c ×2
ssl ×2
cordova ×1
enterprise ×1
https ×1
ipad ×1
macos ×1
xcode ×1