通过 SSL 的 iOS 12 App REST 调用在与自定义 CA 证书交换证书时失败

标签 ios ssl

我在系统的服务器端工作,但我有一个 iOS 问题。有一个团队(不同时区,所以现在不在线)正在使用 iOS 应用程序调用我提供的 REST API。 iOS 12,我很确定。他们早些时候给我发邮件说它“挂起”并向我发送以下日志。我知道 iOS 不喜欢自签名证书,所以我创建了一个自定义 CA,并为我的服务器签署了一个证书。我向他们发送了自定义 CA(颁发和根),他们似乎已将它们正确安装为 iOS 上的配置文件。下面的痕迹对任何人都有意义吗?我知道这有点曲折,但我们正面临监管项目的压力,我非常感谢我能向我的应用开发 friend 提供任何见解。

Error Domain=org.openid.appauth.general Code=-5 "(null)" UserInfo={NSUnderlyingError=0x280d86bb0 {Error Domain=NSURLErrorDomain Code=-1200 "An SSL error has occurred and a secure connection to the server cannot be made." UserInfo={NSURLErrorFailingURLPeerTrustErrorKey=<SecTrustRef: 0x2831eb180>, NSLocalizedRecoverySuggestion=Would you like to connect to the server anyway?, _kCFStreamErrorDomainKey=3, _kCFStreamErrorCodeKey=-9802, NSErrorPeerCertificateChainKey=(

"<cert(0x13e094e00) s: rhaxwayvd1.mid.xxx i: XXX plc Issuing CA 1>",

"<cert(0x13e095800) s: XXX plc Issuing CA 1 i: XXX plc Root CA>",

"<cert(0x13e096200) s: XXX plc Root CA i: XXX plc Root CA>"

), NSUnderlyingError=0x280d85b30 {Error Domain=kCFErrorDomainCFNetwork Code=-1200 "(null)" UserInfo={_kCFStreamPropertySSLClientCertificateState=0, kCFStreamPropertySSLPeerTrust=<SecTrustRef: 0x2831eb180>, _kCFNetworkCFStreamSSLErrorOriginalValue=-9802, _kCFStreamErrorDomainKey=3, _kCFStreamErrorCodeKey=-9802, kCFStreamPropertySSLPeerCertificates=(

"<cert(0x13e094e00) s: rhaxwayvd1.mid.xxx i: XXX plc Issuing CA 1>",

"<cert(0x13e095800) s: XXX plc Issuing CA 1 i: AIB plc Root CA>",

"<cert(0x13e096200) s: XXX plc Root CA i: AIB plc Root CA>"

)}}, NSLocalizedDescription=An SSL error has occurred and a secure connection to the server cannot be made., NSErrorFailingURLKey=https://rhaxwayvd1.mid.xxx:8445/XXXApp/TokenExchange, NSErrorFailingURLStringKey=https://rhaxwayvd1.mid.xxx:8445/XXXApp/TokenExchange, NSErrorClientCertificateStateKey=0}}}

最佳答案

好的,我缺乏知识,但我会发布答案,以防将来对某人有所帮助。尽管我将自定义 CA 证书邮寄给 iOS 测试人员,并且他将其作为配置文件安装,但这还不够。 有必要在设备上指定您信任此 CA。这是通过在设备设置上导航到:

设置->常规->关于->证书信任设置

在那里您将看到新安装的自定义 CA。它默认关闭,因此需要打开。

关于通过 SSL 的 iOS 12 App REST 调用在与自定义 CA 证书交换证书时失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57434431/

相关文章:

java - 如何在移动设备(尤其是 iOS 和 Android)中测试我的应用程序的内存泄漏?

ios - 可达性 iOS

iOS - 如何对深层链接进行单元测试以确保它们可以在应用程序端进行处理

ssl - 无法使用 SSL 从 Windows 应用程序连接到 IdentityServer4

ios - 插入图像后 NSAttributedString 意外更改字体

ios - 更改 AlertController 的布局

SSL ASN1 编码例程和 x509 证书例程错误

android - SSL 过期的 DefaultHttpClient()

c# - 使用 FluentFTP 连接到 FTPS(FTP over SSL)

java - SSLEngine 在解包服务器 hello done 后给出 NEED_UNWRAP