gpt4 book ai didi

仅当服务器需要客户端证书时,iOS 客户端才无法使用 f5 BigIP 进行服务器验证/身份验证

转载 作者:太空宇宙 更新时间:2023-11-03 15:02:28 26 4
gpt4 key购买 nike

当我尝试通过 2-way SSL (HTTPS) 连接到 f5 BigIP 服务器时,我的 iOS 客户端遇到了一个奇怪的错误 - 只有当服务器不需要时,客户端才能通过其证书验证服务器SSL 协商期间的客户端证书。签署服务器的根 CA 的证书和我的客户端证书已经在我信任的 anchor 证书列表中。

以下是我尝试过的每个测试的步骤及其 SSL 协商结果:

  1. 服务器不需要客户端证书,客户端验证服务器证书(单向 ssl:客户端 -> 服务器)
    • 客户端验证服务器证书(通过)
    • 客户端向服务器提供其证书(未选中 - 服务器不需要)
    • 连接建立,服务器允许客户端访问
  2. 服务器需要客户端证书,客户端验证服务器证书(2 向 SSL:客户端 <-> 服务器)
    • 客户端验证服务器证书(失败!!)
    • 没有其他事情发生
  3. 服务器需要客户端证书,客户端接受任何受信任的服务器(单向 SSL:客户端 <- 服务器)
    • 客户端不验证服务器证书(setAllowsAnyHTTPSCertificate:YES - 仅用于测试目的)
    • 客户端向服务器提供其证书(通过)
    • 连接建立,服务器允许客户端访问

在情况 1 和情况 2 之间,只有服务器更改为需要客户端证书(从而启用双向 SSL),而客户端在这两种情况下都验证服务器证书。在情况 2 和情况 3 之间,客户端更改为接受所有服务器证书,而服务器在这两种情况下都需要客户端证书。

因此看来我只能在任一方向上实现单向 SSL 而不是双向 SSL。这很奇怪,因为客户端验证服务器的初始步骤应该发生在服务器请求客户端证书之前,因此每次都会产生相同的结果。我从测试用例 2 得到的错误如下:

The certificate for this server is invalid. You might be connecting to a server that is pretending to be “server.myexample.com” which could put your confidential information at risk. Error occurred while fetching https://server.myexample.com/service: Error Domain=NSURLErrorDomain Code=-1202 "The certificate for this server is invalid. You might be connecting to a server that is pretending to be “server.myexample.com” which could put your confidential information at risk.

我收到具有相同信息但指定错误的其他消息:NSErrorFailingURLStringKeyNSErrorFailingURLKeyNSUnderlyingErrorNSURLErrorFailingURLPeerTrustErrorKey.

我认为我不需要为 2 向 SSL 和 1 向 SSL 使用不同的服务器证书,我需要吗?

提前致谢!

最佳答案

问题是我在 f5 服务器上的 iRule 中有客户端请求。我删除了 iRule 的这一部分并将请求添加到客户端 SSL 配置文件中。这似乎适用于 iOS 客户端,这意味着 iOS 代码可能有些奇怪,因为我测试过的所有浏览器都可以通过我发出请求(iRule 或客户端 SSL 配置文件)的方式工作。 iOS 应用程序仅适用于在客户端 SSL 配置文件中发出请求。

关于仅当服务器需要客户端证书时,iOS 客户端才无法使用 f5 BigIP 进行服务器验证/身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19563459/

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