继承:NSObject
遵照:NSCoping,NSSecureCoding
声明处:AFNetworkReachabilityManager.h
概述
AFSecurityPolicy评估服务器对固定队的X.509证书的信任和安全连接的公共秘钥。
添加固定的SSL证书到你的应用,帮助预防中间人攻击和其他漏洞。应用处理敏感用户数据或财政信息,强烈建议所有的通信都通过SSL固定配置和使能的HTTPS连接。
任务
其他方法
- SSLPinningMode 属性
- pinnedCertificates 属性
- allowInvalidCertificates 属性
- validatesDomainName 属性
从Bundle中获取证书
- + certificatesInBundle
获取指定的安全协议
- + defaultPolicy
初始化
- + policyWithPinningMode:
- + policyWithPinningMode:withPinnedCertificates:
评估服务器信任
- - evaluateServerTrust:forDomain:
属性
SSLPinningMode
@property (readonly, nonatomic, assign) AFSSLPinningMode SSLPinningMode
讨论
服务器信任评估固定SSL证书的标准。默认为AFSSLPinningModeNone。
声明处
AFSecurityPolicy.h
allowInvalideCertificates
@property (nonatomic, assign) BOOL allowInvalidCertificates
讨论
是否信任一个失效或过期的SSL证书的服务器。默认为NO。
声明处
AFSecurityPolicy.h
pinnedCertificates
@property (nonatomic, strong, nullable) NSSet<NSData*> *pinnedCertificates
讨论
依据SSL固定模式来评估服务器信任的证书。
默认情况下,这个属性设置为保存在目标编译AFNetworking中的任意证书。注意,如果你作为嵌入framework的方式使用AFNetworking,默认情况下没有固定的证书。使用certificationsInBundle从你的目标中加载证书,通过调用policyPinningMode:withPinnedCertificates来创建一个新的政策。
注意:如果固定是使能的,那么任何匹配的固定证书evaluateServerTrust:forDomain:
返回true。
声明处
AFSecurityPolicy.h
validatesDomainName
@property (nonatomic, assign) BOOL validatesDomainName
讨论
验证域名是否在证书的CN字段中。默认是YES。
声明处
AFSecurityPolicy.h
类方法
certificatesInBundle:
+ (NSSet<NSData*> *)certificatesInBundle:(NSBundle *)bundle
讨论
返回束(bundle)中包含的任何证书。如果作为一个嵌入式框架使用AFNetworking,必须使用这个方法在应用束中已经包含的证书中来查找证书,当通过调用policyWithPinningMode:withPinnedCertificates
来创建安全政策时使用这些证书。
返回值
提供的束中包含的证书。
声明处
AFSecurityPolicy.h
defaultPolicy
+ (instancetype)defaultPolicy
讨论
返回共享的默认安全政策,不允许无效的证书,验证域名,不验证固定的(pinned)证书或公共秘钥。
返回值
默认安全政策。
声明处
AFSecurityPolicy.h
policyWithPinningMode:
+ (instancetype)policyWithPinningMode:(AFSSLPinningMode)pinningMode
讨论
返回一个根据指定固定的模式创建的安全政策。
参数
pinningMode
SSL固定的模式。
返回值
一个新的安全政策。
声明处
AFSecurityPolicy.h
policyWithPinningMode:withPinnedCertificates:
+ (instancetype)policyWithPinningMode:(AFSSLPinningMode)pinningMode withPinnedCertificates:(NSSet<NSData*> *)pinnedCertificates
讨论
返回一个根据指定的固定模式创建一个安全政策。
参数
pinningMode
SSL固定模式。
pinnedCertificates
固定的证书。
返回值
一个新的安全政策。
声明处
AFSecurityPolicy.h
实例方法
evaluateServerTrust:forDomain:
- (BOOL)evaluateServerTrust:(SecTrustRef)serverTrust forDomain:(nullable NSString *)domain
讨论
在安全政策上,指定的服务器信任是否可以被接受。
当服务器返回一个身份验证时,这个方法将会被使用。
参数
serverTrust
服务器信任的X.509证书。
domain
服务器信任的域。如果为nil,这个域将不会被生效。
返回值
是否信任服务器。
声明处
AFSecurityPolicy.h
// END 到现在还没有使用过HTTPS进行服务器的通讯。Hai,不知道什么时候可以开始使用。