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];
ありがとう。