Swift 设置自签名证书时出现问题

Swift 设置自签名证书时出现问题,swift,https,Swift,Https,我们有一个使用自签名证书托管HTTPS接口的服务器(我已经等了两周从GoDaddy获得批准的证书,我希望我迟早会得到它,我需要继续使用HTTPS接口进行开发) 作为客户端,我在本地计算机上有一份证书副本,并已通过使用curl和将证书添加到我的Mac中来验证证书是否有效,以便我可以运行nscurl--ats diagnostics https://。诊断工作正常,所有测试均通过 我的iPhone应用程序使用HTTP接口,我正在尝试将其升级为使用HTTPS。urlRequest失败,NSURLSes

我们有一个使用自签名证书托管HTTPS接口的服务器(我已经等了两周从GoDaddy获得批准的证书,我希望我迟早会得到它,我需要继续使用HTTPS接口进行开发)

作为客户端,我在本地计算机上有一份证书副本,并已通过使用curl和将证书添加到我的Mac中来验证证书是否有效,以便我可以运行nscurl--ats diagnostics https://。诊断工作正常,所有测试均通过

我的iPhone应用程序使用HTTP接口,我正在尝试将其升级为使用HTTPS。urlRequest失败,NSURLSession/NSURLConnection HTTP加载失败(kCFStreamErrorDomainSSL,-9813)。我使用SecItemAdd添加证书(尽管它是一个从.cert转换为.der类型的文件)。我相当肯定它正在工作,因为下一次是执行SecItemAdd时,我得到一个errSecDuplicateItem错误。而-9813似乎表明没有根证书

我已经阅读了许多帖子,其中一行是关于-9813的,使用了自签名证书,以及发布了一个带有应用传输安全性的应用程序,试图确定应该在plist中设置哪些标志。许多帖子显示了不同的内容。到目前为止,我正在使用:

//NSAppTransportSecurity                              <dict>
//    NSAllowsArbitraryLoads                          <Boolean>    Yes
//    NSException Domains                             <dict>
//        <my domain name>                            <dict>
//            NSRequiresCertificateTransparency       <Boolean>    No
//            NSExceptionAllowsInsecureHTTPLoads      <Boolean>    No
//            NSExceptionMinimumTLSVersion            <String>  TLSv1.0
//            NSIncludesSubdomains                    <Boolean>    Yes
//            NSExceptionRequiresForwardSecrecy       <Boolean>    Yes
//NSAppTransportSecurity
//NSAllowsArbitraryLoads是的
//N异常域
//                                    
//NSRequiresCertificateTransparency编号
//NSExceptionAllowsInsecureHTTPLoads否
//NSExceptionMinimumTLSvVersion TLSv1.0
//n包括多个域是
//N异常要求转发保密是
任何帮助或建议都将不胜感激。
谢谢

我读过其他几篇帖子,上面说NSAllowArbitraryLoads应该设置为“否”(不是“是”)。当我进行此更改时,我得到:Error Domain=NSURLErrorDomain Code=-1202“此服务器的证书无效。您可能正在连接一个假装为“35.165.246.8”的服务器,这可能会使您的机密信息面临风险。”我读过其他几篇文章,其中说NSAllowArbitraryLoads应该设置为否(不是是)。当我进行此更改时,我得到:Error Domain=nsurerrordomain Code=-1202“此服务器的证书无效。您可能正在连接假装为“35.165.246.8”的服务器,这可能会使您的机密信息面临风险。”