1
我試圖將我的應用程序連接到具有錯誤主機名的服務器證書的開發服務器,但它由受信任的錨定證書籤名。當我評估服務器信任對象時,它按預期失敗。我正在嘗試更改服務器主機名的信任評估策略,但似乎沒有幫助。覆蓋TLS服務器驗證主機名似乎不工作
// In -connection:willSendRequestForAuthenticationChallenge:
// NSURLAuthenticationMethodServerTrust
SecTrustRef trust = [challenge.protectionSpace serverTrust];
SecTrustResultType trustResult;
SecTrustEvaluate(trust, &trustResult);
// trustResult == kSecTrustResultRecoverableTrustFailure
SecPolicyRef policyOverride = SecPolicyCreateSSL(true, (CFStringRef)@"devhost");
CFArrayRef policies = (CFArrayRef)@[policyOverride];
SecTrustSetPolicies(trust, policies);
CFRelease(policyOverride);
SecTrustEvaluate(trust, &trustResult);
// trustResult == kSecTrustResultRecoverableTrustFailure
據我瞭解,我第二次打電話SecTrustEvaluate(),它應該返回kSecTrustResultUnspecified
。當我初始化NSURLConnection時,我已經使用「devhost」連接到dev服務器,並且也使用了「devhost」。我在這裏做錯了什麼?