无聊的 SSL 握手失败和复制身份凭证时出错

Posted

技术标签:

【中文标题】无聊的 SSL 握手失败和复制身份凭证时出错【英文标题】:Boring SSL Handshake Failure and Error copying Identity Cred 【发布时间】:2019-06-15 18:53:24 【问题描述】:

我正在尝试通过 Alamofire 为我的请求使用自签名证书。

让 trustPolicy = ServerTrustPolicy.pinCertificates(证书: [证书], validateCertificateChain: true, validateHost: true)

                let serverTrustPolicies: [String: ServerTrustPolicy] = [
                    "https:-domain-name": trustPolicy,"domain-name" : .disableEvaluation]
                let policyManager = ServerTrustPolicyManager(policies: serverTrustPolicies)

但我收到以下错误。

CredStore - copyIdentPrefs - 复制身份凭据时出错。 错误=-25300,查询= class= 标识号; labl = "https://domain-name:443/"; “r_Ref” = 1;

[BoringSSL]boringssl_context_alert_callback_handler(3724) [C1.1:2][0x139d1bd20] 警报级别:致命,描述:握手 失败 2019-01-22 15:34:23.448605+0530 DB[1276:264543] [BoringSSL]boringssl_session_errorlog(224) [C1.1:2][0x139d1bd20] [boringssl_session_handshake_incomplete] SSL_ERROR_SSL(1):操作 在库中失败

2019-01-22 15:34:23.448796+0530

DB[1276:264543] [BoringSSL] 无聊sl_session_handshake_error_print(205)[C1.1:2][0x139d1bd20] 5266093016:错误:10000410:SSL 例程:OPENSSL_internal:SSLV3_ALERT_HANDSHAKE_FAILURE:/BuildRoot/Library/Caches/com.apple.xbs/Sources/boringssl/boringssl-109.230.1/ssl/tls_record.cc:586:SSL 警报编号 40

2019-01-22 15:34:23.448986+0530 数据库[1276:264543]

[BoringSSL] 无聊sl_context_get_error_code(3545) [C1.1:2][0x139d1bd20] SSL_AD_HANDSHAKE_FAILURE

2019-01-22

15:34:23.464957+0530 DB[1276:264543] TIC 读取状态 [1:0x281599800]: 1:-9824

2019-01-22 15:34:23.467598+0530

DB[1276:264543] 任务 . HTTP 加载失败(错误代码:-9824 [1:-9824])

2019-01-22

15:34:23.468019+0530 DB[1276:264574] 任务 . 完成错误 - 代码: -9824 2019-01-22 15:34:23.470149+0530 DB[1276:264574] 任务 . 加载失败并出现错误 错误域=NSPOSIXErrorDomain 代码=-9824“未知错误:-9824” UserInfo=_NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask ., _kCFStreamErrorDomainKey=1,NSErrorPeerAddressKey=长度=16,容量=16,字节= 0x100201bb03106e120000000000000000,_kCFStreamErrorCodeKey=-9824, _NSURLErrorRelatedURLSessionTaskErrorKey=( "LocalDataTask ." ) [-9824]

从过去 1 周开始一直在尝试这个。任何帮助将不胜感激。

【问题讨论】:

这可能有助于更好地格式化您的问题。 好奇你是否发现了这一点? 【参考方案1】:

在 Alamofire 中禁用评估不会禁用系统对证书的基本验证,默认情况下会阻止自签名证书。我建议您阅读Apple's ATS documentation,但我猜这需要NSExceptionAllowsInsecureHTTPLoads 用于您的域和其他设置的某种组合。如果可以提供帮助,您还应该确保不要发布这些设置。

【讨论】:

以上是关于无聊的 SSL 握手失败和复制身份凭证时出错的主要内容,如果未能解决你的问题,请参考以下文章

特定用户的 Apache,mod_ssl“请求失败:读取标头时出错”

JBoss 相互证书身份验证在 SSL 握手时失败

与远程服务器进行 SSL 握手期间出错

PayPal:与远程服务器的 SSL 握手期间出错

WebSocket 连接失败。 WebSocket握手期间出错-socketjs

(tornadio2) 失败:WebSocket 握手期间出错:意外的响应代码:403