1

iOS での拡張 SSL 証明書検証について質問があります。私が持っているコードは次のようになります。

- (void) validateAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge {

    if (!someCustomCheck()) { // I do some custom check here
        [paramChallenge.sender cancelAuthenticationChallenge:challenge];
    }

    NSURLCredential *credential = [NSURLCredential credentialForTrust:[challenge protectionSpace].serverTrust];
    if (credential) {
        [challenge.sender useCredential:credential forAuthenticationChallenge:challenge];
    }
    else {
        [challenge.sender cancelAuthenticationChallenge:challenge];
    }
}

テストでは、この時点で SSL 証明書の通常の iOS チェックが行われていないことがわかりました。行を置き換えると、次のようになります。

[challenge.sender useCredential:credential forAuthenticationChallenge:challenge];

[challenge.sender performDefaultHandlingForAuthenticationChallenge:challenge];

カスタム チェックの後も、デフォルトのシステム SSL 証明書チェックが行われますか?

ドキュメントからは理にかなっていますが、私が見た多くの例では、通常、カスタム検証を行ってから呼び出します

[challenge.sender useCredential:credential forAuthenticationChallenge:challenge];

ありがとう。

4

0 に答える 0