【发布时间】:2017-10-22 00:05:53
【问题描述】:
我在 stackoverflow 上阅读了this question,所以我知道我无法从应用程序的配置文件中读取已安装的认证。
这是我尝试过的:
- 通过 AirDrop 从我的 macbook 复制自签名的证书 (.p12)。
- 然后iPhone会要求我安装,所以我安装了。
- 现在我可以在
Settings->General->Profiles & Device Management看到证书,但是在配置文件中Signed by下面有红字Not Verified。我猜是因为证书是自签名的。 - 我开发了一个应用程序,它使用
[NSURLSession dataTaskWithURL: ...]来请求网页,而不使用[URLSession: didReceiveChallenge: ...]。 - 应用出现错误
Code=-1202 "The certificate for this server is invalid.",这与我在安装证书之前遇到的错误相同。
更新:我又试了一次,发现我得到的证书是未签名,也许这就是我失败的真正原因,并且个人资料显示未验证?也许我应该问我的同事谁给我这个证书。
我需要将 自签名证书 (.p12) 从我的 OSX 复制到我的 iPhone/iPad 中,然后开发一个应用程序在调用 Web API 时将其作为凭据读取。
由于每个授权用户将获得不同的证书,我不能只将证书放在应用程序的主包中。
我知道我可以通过应用下载证书(可能带有一些授权令牌),但由于服务器尚未开发此 api,我需要在测试我的应用时手动复制证书。
谁能教我如何复制证书并从我的开发应用程序中读取它。
感谢您的帮助:)
【问题讨论】:
-
如果这只是出于调试原因的临时解决方案,直到 API 完成,我怎么理解,为什么不将证书文件添加到 Xcode 项目/捆绑包中?如果您需要它在实际设备上,您只需通过电子邮件发送它,在设备上打开它,在 iOS 设置应用程序中添加并信任它。
-
嗨@shallowThought,感谢您的回复。我确实通过电子邮件发送并添加到配置文件中,但正如我所提到的,我无法从应用程序中读取配置文件中的证书,您对此还有其他建议吗?我也尝试使用
[NSURLSession dataTaskWithURL: ...]在配置文件中请求带有证书的网页,没有实现[URLSession: didReceiveChallenge: ...],它仍然返回错误(代码=-1202“此服务器的证书无效。”) -
您在设备上信任它吗?
-
是的,我安装了它,我可以在我的
Settings->General->Profiles & Device Management中看到它。我使用空投从我的 macbook 复制证书。 -
安装后,您还必须明确信任它。它比说“受信任”并且(我认为)有一个绿色复选标记。可能用新信息更新您的问题(添加/信任的内容、方式、确切的代码为您提供了哪些确切的错误)。
标签: ios ssl certificate p12