Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/110.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios SSL固定-在AFSecurityPolicy中设置固定公钥而不是固定证书_Ios_Objective C_Ssl_Afnetworking_Afnetworking 2 - Fatal编程技术网

Ios SSL固定-在AFSecurityPolicy中设置固定公钥而不是固定证书

Ios SSL固定-在AFSecurityPolicy中设置固定公钥而不是固定证书,ios,objective-c,ssl,afnetworking,afnetworking-2,Ios,Objective C,Ssl,Afnetworking,Afnetworking 2,我正在使用AFNetworking进行SSL固定。我让它与以下代码一起工作 AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; manager.securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModePublicKey]; [manager.securityPolicy setPinnedCert

我正在使用AFNetworking进行SSL固定。我让它与以下代码一起工作

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModePublicKey];
[manager.securityPolicy setPinnedCertificates:myCertificate];
我的问题是,有没有办法在AFSecurityPolicy中设置公钥而不是证书?我们的证书偶尔会换一次,我不想把它传给别人。AFSecurityPolicy.h中没有setPublicKeys方法。AFSecurityPolicy.m有一个属性
pinnedPublicKeys
,但无法设置,因为它不在头文件中


提前感谢。

密钥可以通过捆绑包中的
.cer
文件自动从证书中提取,也可以在手动设置
pinnedCertificates
属性时提取。即使旧的证书已经过期,只要公钥不变,新的证书也可以工作


请参阅(以及
AFPublicKeyForceCertificate
功能)。如果你不清楚它是如何工作的,我建议设置一个断点并在应用程序启动时通过它。

这是有道理的,我确实看到AFSecurityPolicy对我的证书所做的一切就是提取我的公钥,实际上我甚至可以用正确的公钥创建一个虚拟证书。