无聊的 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“请求失败:读取标头时出错”