Ssl SecTrustPolicy使用自签名证书失败

Ssl SecTrustPolicy使用自签名证书失败,ssl,alamofire,self-signed,Ssl,Alamofire,Self Signed,所以我创建了这个测试用例(现有alamofire测试用例的混合体): 根CA是一个自签名证书,用于一个有效的现有视景 但我得到了这个错误: 测试套件“选定测试”于2015-08-12 12:46:37.512开始测试 套房“阶段认证”于2015-08-12 12:46:37.514开始测试 案例'-[Alamofire_iOS_Tests.StageAuthentication] testHTTPBasicAuthenticationWithValidCredentialsSelfSignedS

所以我创建了这个测试用例(现有alamofire测试用例的混合体):

根CA是一个自签名证书,用于一个有效的现有视景

但我得到了这个错误:

测试套件“选定测试”于2015-08-12 12:46:37.512开始测试 套房“阶段认证”于2015-08-12 12:46:37.514开始测试 案例'-[Alamofire_iOS_Tests.StageAuthentication] testHTTPBasicAuthenticationWithValidCredentialsSelfSignedSuccess]' 起动。2015-08-12 12:46:37.663测试[3641:12220875] NSURLSession/NSURLConnection HTTP加载失败 (kCFStreamErrorDomainSSL,-9813) /用户/wynne_b/Alamofire/Tests/QuestaAuthentication。swift:309:错误: -[Alamofire_iOS_Tests.StageAuthentication testHTTPBasicAuthenticationWithValidCredentialsSelfSignedSuccess]: XCTASERTNOTNIL失败-响应不应为零 /用户/wynne_b/Alamofire/Tests/QuestaAuthentication。swift:310:错误: -[Alamofire_iOS_Tests.StageAuthentication testHTTPBasicAuthenticationWithValidCredentialsSelfSignedSuccess]: XCTASERTTRUE失败-找不到数据。 /用户/wynne_b/Alamofire/Tests/QuestaAuthentication。swift:311:错误: -[Alamofire_iOS_Tests.StageAuthentication testHTTPBasicAuthenticationWithValidCredentialsSelfSignedSuccess]: XCTAssertNil失败:“错误域=NSURlerErrorDomain代码=-1202”错误 此服务器的证书无效。您可能正在连接到一个 假装为“portal.care180.com”的服务器 您的机密信息面临风险。” UserInfo={NSLocalizedDescription=此服务器的证书为 无效。您可能正在连接一个假装是的服务器 “portal.care180.com”,可以将您的机密信息放在 risk.,nsLocalizedRecoverysSuggestion=是否要连接到 是否仍使用服务器?,kCFStreamErrorDomainKey=3, NSUnderlyingError=0x7ae21c60{Error Domain=KCFerrordomaincfn网络 代码=-1202“(空)” UserInfo={kCFStreamPropertySSLClientCertificateState=0, _KCFnetworkCfStreamsSrorOriginalValue=-9813,kCFStreamErrorCodeKey=-9813,kCFStreamErrorDomainKey=3,KCFStreamPropertySlPeerTrust=,, kCFStreamPropertySSLPeerCertificates={type=immutable,count=1,value=(0: )}}},kCFStreamErrorCodeKey=-9813, NSErrorFailingURLStringKey=, NSErrorPeerCertificateChainKey={type= 不可变,计数=1,值=(0:)}, NSErrorClientCertificateStateKey=0, NSURlerErrorFailingUrlPeerTrustErrorKey=, NSErrorFailingURLKey=}”- 测试用例中的错误应为零 '-[Alamofire_iOS_Tests.StageAuthentication testHTTPBasicAuthenticationWithValidCredentialsSelfSignedSuccess]' 失败(0.156秒)。测试套件“StageAuthentication”在失败 2015-08-12 12:46:37.671. 执行了1次测试,有3次失败(0 意外)在0.156(0.157)秒内测试套件“选定测试” 于2015-08-12 12:46:37.672失败。执行了1次测试,有3次失败 (0意外)在0.156(0.160)秒内程序以退出代码结束: 一,


对不起,我太笨了:我做错了什么?或者是否有一个Alamofire测试可以使用不同的证书和主机来执行此操作?

我混淆了根和叶。我的错。

我把根和叶弄混了。我的错

func testHTTPBasicAuthenticationWithValidCredentialsSelfSignedSuccess() {
    // Given
    let expectation = expectationWithDescription("\(URLString) 200")

    var request: NSURLRequest?
    var response: NSHTTPURLResponse?
    var data: NSData?
    var error: NSError?

    setRootCertificateAsLoneAnchorCertificateForTrust(serverTrust)
    let policies = [SecPolicyCreateBasicX509()]
    SecTrustSetPolicies(serverTrust, policies)

    // When
    Alamofire.request(.GET, URLString)
        .authenticate(user: user, password: password)
        .response { responseRequest, responseResponse, responseData, responseError in
            request = responseRequest
            response = responseResponse
            data = responseData
            error = responseError

            expectation.fulfill()
    }

    waitForExpectationsWithTimeout(defaultTimeout, handler: nil)

    // Then
    XCTAssertNotNil(request, "request should not be nil")
    XCTAssertNotNil(response, "response should not be nil")
    XCTAssertTrue(data?.length > 0, "Data not found.")
    XCTAssertNil(error, "error should be nil")

}