gpt4 book ai didi

ios - NSURLConnection 可以使用安装在设备配置文件中的客户端证书吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:43:04 25 4
gpt4 key购买 nike

我有这个设置:

  1. 配置为使用 ssl 客户端证书身份验证 (clientAuth=true) 的 tomcat 服务器
  2. 安装了有效客户端证书的 ipad(以 .p12 文件的形式通过电子邮件发送,并在配置文件下可见)

当通过 ios safari 浏览时,ipad 使用客户端证书并针对服务器进行身份验证。

但是在代码中,使用 NSURLConnection,它不会连接。在服务器上调试显示客户端根本没有发送和证书。

在客户端我得到这样的错误:

Request(https://192.168.1.5:8443/device/security/policy>, 0, 0)) didFailWithError:Error   Domain=NSURLErrorDomain Code=-1205 "The server “192.168.1.5” did not accept the certificate." UserInfo=0xe2eae30
{NSErrorFailingURLStringKey=https://192.168.1.5:8443/device/security/policy>, NSErrorFailingURLKey=https://192.168.1.5:8443/device/security/policy>, NSLocalizedDescription=The server “192.168.1.5” did not accept the certificate.,
NSUnderlyingError=0xe2eb250 "The server “192.168.1.5” did not accept the certificate.", NSURLErrorFailingURLPeerTrustErrorKey=<SecTrustRef: 0xe6ab010>}

我知道我可以为 NSURLAuthenticationMethodClientCertificate 保护空间的挑战实现委托(delegate)方法,但如果我这样做,我没有要发送的证书,它安装在设备上并且无法通过代码访问(是吗??)我尝试调用 [challenge.sender performDefaultHandlingForAuthenticationChallenge:challenge] 但这似乎没有效果。

我原以为 NSURLConnection 会像 safari 一样运行并访问已安装的证书,但它似乎没有。我不想以某种方式将证书安装到我的应用程序中 - 这就是内置证书管理的目的!

还是我遗漏了什么?任何帮助表示赞赏。

最佳答案

从根本上说,您无法从 iOS(从 iOS 8 开始)的应用程序中获取全局安装的证书,并且操作系统不会通过使用 NSURLConnection 发送它们来帮助您解决问题。 Safari 具有访问证书的特殊权限。因此,从应用程序中使用它们的唯一方法是以某种方式将它们安装到应用程序中,这使得整个事情变得困难。

关于ios - NSURLConnection 可以使用安装在设备配置文件中的客户端证书吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15039956/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com