2

サーバーに対して、異なる p12 証明書を使用して 2 つの呼び出しを行っています。問題は、新しい証明書を割り当てたにもかかわらず、2 回目の呼び出しで最初の呼び出しの証明書を使用していることです。

最初の呼び出し (2 番目の呼び出しに使用する 2 番目の証明書をダウンロードします):

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:)];

2 番目の呼び出しで:

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で別の証明書を取得しているにもかかわらず、2 番目の呼び出しが最初の証明書を使用していることをサーバーで確認できます。それで、証明書はキャッシュされていますか?2 番目の ASIHTTPRequest に 2 番目の証明書を使用するように明示的に指示するにはどうすればよいですか?

注: 2 つの異なる URL ですが、同じドメインです。

ありがとう!

4

2 に答える 2

0

可能であれば、DNS 設定を変更して、2 つの異なるドメインを持つようにしてください。これでキャッシュの問題が解決するはずです。

于 2013-10-30T16:02:42.053 に答える