【问题标题】:cmd-line tests fail with SSL certificate error命令行测试因 SSL 证书错误而失败
【发布时间】:2014-01-31 04:23:31
【问题描述】:

在遇到一系列与覆盖刷新(已修复)和测试输出被消耗(未修复)相关的问题后,我决定尝试使用 Cedar 和 GH-Unit 作为 XCTest 的替代方案。

不幸的是,这带来了一个新问题:

  • 从 IDE 启动时一切正常。
  • 从命令行启动时,出现 SSL 证书错误

错误总结:

Error Domain=com.biasedbit.http Code=60 "Peer certificate cannot be authenticated with given CA certificates" 

我该如何解决这个问题? (以及额外的点)为什么从 IDE 启动时会知道证书,而不是从命令行启动?

【问题讨论】:

    标签: ios objective-c ssl cedar gh-unit


    【解决方案1】:

    需要在命令行中明确指定应允许无效/自签名 SSL 证书。我仍然不确定为什么在通过 IDE 运行时不需要这样做,但这是另一个问题。

    设置接受无效证书

    • 对于核心苹果 API,这可能有点棘手。它似乎是一个私有 API,或者是前面的块。
    • AFNetworking 支持此功能。

    对于我正在使用的网络堆栈(BBHTTP,顺便说一句,它非常好,而且似乎被低估了),这很简单:

    [[BBHTTPRequest postToURL:_serviceUrl data:[envelope data] contentType:@"text/xml"] setup:^(BBHTTPRequest* request)
    {
        request.allowInvalidSSLCertificates = YES;
    } execute:^(BBHTTPResponse* response)
    {
        if (_logResponses)
        {
            LogDebug(@"\n\n$$$$$$$$$ Got response: %@", [[NSString alloc] initWithData:[response content] encoding:NSUTF8StringEncoding]);
        }
    
        //etc .. . . 
    
    } error:^(NSError* error)
    {
        //etc .. . . 
    }];
    

    【讨论】:

      猜你喜欢
      • 2021-12-15
      • 2014-02-18
      • 2015-10-17
      • 2014-02-11
      • 2019-09-08
      • 2015-06-05
      • 2015-11-19
      • 1970-01-01
      相关资源
      最近更新 更多