我正在使用不同的 p12 证书对我的服务器进行两次调用。 问题是,在第二次调用时,即使我为其分配了新证书,它也使用第一次调用中的证书。
第一次调用(它下载我要用于第二次调用的第二个证书):
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request addRequestHeader:@"Content-Type" value:@"application/x-pkcs12"];
[request setValidatesSecureCertificate:YES];
[request setCachePolicy: ASIDoNotWriteToCacheCachePolicy | ASIDoNotReadFromCacheCachePolicy];
[request setClientCertificateIdentity:[self copyClientCertificate]];
[request setDownloadDestinationPath:thePath];
[request setDelegate:self];
[request setUseCookiePersistence:YES];
[request startAsynchronous];
[request setDidReceiveResponseHeadersSelector:@selector(didReceiveResponseHeaders:)];
[request setDidFinishSelector:@selector(ConnectFinished:)];
在第二次调用时:
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request setValidatesSecureCertificate:YES];
[request setCachePolicy: ASIDoNotWriteToCacheCachePolicy | ASIDoNotReadFromCacheCachePolicy];
[request setClientCertificateIdentity:[self copyClientCertificate2]];
[request setCachePolicy:ASIDoNotReadFromCacheCachePolicy];
[request setDelegate:self];
[request setUseCookiePersistence:YES];
[request startAsynchronous];
[request setDidFinishSelector:@selector(ConnectFinished2:)];
但是,我可以在我的服务器中看到第二个调用正在使用第一个证书,即使它在copyClientCertificate2上获得另一个证书。 那么证书是否被缓存了?如何显式告诉第二个 ASIHTTPRequest 使用第二个证书?
注意:它是 2 个不同的 URL,但相同的域。
谢谢!
如果可以,请尝试更改 DNS 设置,以便您将拥有两个不同的域。这应该可以解决您的缓存问题。
你必须使用 Matt Thompson 的 ASIHTTP unmaintenance Library [[ASIDownloadCache sharedCache] removeCachedDataForURL: yourURLReference];