
不过,使用自签名证书,浏览器并不会自动信任使用它们的网站。因此在移动Safari浏览器上使用HttpWatch app时,你常常会看到类似下面的警告:
使用自签名证书时浏览器发出的警告
使用HttpWatch iOS app 则提示更多警告信息:
使用自签名证书时浏览器发出的警告
那么,如何设置iOS才能避免接收此类警告呢?使用自签名证书应该注意些什么呢?我们先来看两点:
一、不要在移动Safari中接受自签名证书
当你在Safari中首次尝试使用自签名证书时你可能自然而然就选择了Continue或者Details->Accept。
不要在移动Safari中接受自签名证书
虽说这样也可以在Safari中打开站点,不过值得注意的是:
1. 在Safari中选择Continue或者Details->Accept接受此证书后,只是添加了一个SSL连接异常,可阻止Safari继续向你警告相关站点。但它不会安装该证书作为iOS上的可信任证书。该设备上的其他应用程序(如Chrome、HttpWatch等)仍然无法连接到该网站。
2. 一旦添加了SSL异常,在iOS7系统中再想移除它是很困难的。在以前的版本中,通过Settings->Safari and selecting ‘Clear Cookies and Data’ 可以将其移除。但在iOS7中似乎不太容易实现。
二、安装自签名证书作为iOS的配置参数文件
你可以简单地通过将该文件发送给自己作为附件的方式在iOS中添加SSL证书到受信任列表中:
安装自签名证书作为iOS的配置参数文件
然后选择Install添加证书。这样一来,当你在Safari中使用证书时就不会再收到相关警告,其他iOS应用程序在该设备中使用也不会再收到类似警告。
与上面按Safari SSL异常处理不同的是,用这种方法安装你可以通过Settings->General->Profiles随时访问证书,需要的时候也可以删除它:
删除证书
Apple为Mac和PC提供了安装证书的iPhone配置实用工具。当电子邮件不可用或需要管理的iOS设备数量较多时,这是一个好方法。
iOS7以下版本的国际化方法创建一个Localizable.strings文件 code中用字符串的地方使用NSLocalizedString,这与系统语言相关 时间显示,数字,金融与地区相关,所以需要各类NSFormater, 如NSDateFormatter, NSNumberFormatter … 用命令将所有NSLocalizedString返回的字符串格式化到Localizable.strings里。命令行进入工程目录(我的工程名是LocalizationTest),运行下面命令:find ./ -name "*.m" -print0 xargs -0 genstrings -o LocalizationTest/en.lproj其中LocalizationTest/en.lproj根据自己的目录修改签SSL证书问题,你可要到沃通CA申请一张免费SSL证书来使用。如果iOS APP用了服务器,需要防止数据嗅探,防止中间人利用伪造证书窃取流量,保护数据安全,这就需要为APP设置HTTPS加密连接。APP设置HTTPS加密连接,需要先向权威CA机构(如沃通WoSign)申请Web服务器的SSL证书,通过网络开源库AFNetworking 的安全相关设定配置HTTPS请求,获取服务器部署的SSL证书。按照下列方法设置AFNetworking。
设置AFN请求管理者的时候 添加 https ssl 验证。
// 1.获得请求管理者
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]
// 2.加上这个函数,https ssl 验证。
[manager setSecurityPolicy:[self customSecurityPolicy]]
// https ssl 验证函数
- (AFSecurityPolicy *)customSecurityPolicy {
// 先导入证书
NSString *cerPath = [[NSBundle mainBundle] pathForResource:@"xxx" ofType:@"cer"]//证书的路径
NSData *cerData = [NSData dataWithContentsOfFile:cerPath]
// AFSSLPinningModeCertificate 使用证书验证模式
AFSecurityPolicy *securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeCertificate]
// allowInvalidCertificates 是否允许无效证书(也就是自建的证书),默认为NO
//validatesDomainName 是否需要验证域名,默认为YES
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)