iOS9 PayPal SDK - “发生 SSL 错误......”

Posted

技术标签:

【中文标题】iOS9 PayPal SDK - “发生 SSL 错误......”【英文标题】:iOS9 PayPal SDK - "An SSL error has occurred...." 【发布时间】:2015-12-28 10:14:35 【问题描述】:

我遇到了与此问题ios9 getting error “an ssl error has occurred and a secure connection to the server cannot be made” 中报告的相同的错误

我已经使用 PayPal URL https://mobileclient.paypal.com 与 SSL 实验室核实过,它告诉我它只支持以下密码...

TLS_RSA_WITH_RC4_128_SHA
TLS_RSA_WITH_RC4_128_MD5
TLS_RSA_WITH_AES_256_CBC_SHA
TLS_RSA_WITH_AES_128_CBC_SHA
TLS_RSA_WITH_3DES_EDE_CBC_SHA

与 Apple 文档https://developer.apple.com/library/prerelease/ios/technotes/App-Transport-Security-Technote/ 中列出的密码不完全匹配

我想问的是密码不完全相同的问题吗?就 PayPal 而言,我当然不想绕过 ATS,是吗?

【问题讨论】:

【参考方案1】:

正如Flexicoder 所写,您必须禁用NSExceptionRequiresForwardSecrecy。 将此添加到您的 Info.plist

<key>NSAppTransportSecurity</key>
    <dict>
        <key>NSExceptionDomains</key>
        <dict>
            <key>yourDomain.com</key>
            <dict>
                <key>NSExceptionRequiresForwardSecrecy</key>
                <false/>
            </dict>
        </dict>
    </dict>

【讨论】:

【参考方案2】:

我进一步阅读了文档,这是在提出问题之前我应该​​做的!但是要允许列出的密码,我需要从文档中关闭该 URL 的 NSExceptionRequireForwardSecrecy...

NSExceptionRequiresForwardSecrecy 一个布尔值,用于覆盖域支持使用密码的前向保密的要求。

YES 是默认值,并将密码限制为默认行为中显示的密码。

将值设置为 NO 会在接受的密码列表中添加以下内容:

TLS_RSA_WITH_AES_256_GCM_SHA384 TLS_RSA_WITH_AES_128_GCM_SHA256 TLS_RSA_WITH_AES_256_CBC_SHA256 TLS_RSA_WITH_AES_256_CBC_SHA TLS_RSA_WITH_AES_128_CBC_SHA256 TLS_RSA_WITH_AES_128_CBC_SHA

【讨论】:

以上是关于iOS9 PayPal SDK - “发生 SSL 错误......”的主要内容,如果未能解决你的问题,请参考以下文章

从 Amazon S3 SSL 错误下载 iOS 9 应用程序:TLS 1.2 支持

无法识别的选择器在 iOS9 上的 facebook sdk 4.6 中发送到 facebook 登录管理器的实例

使用 PayPal REST SDK 和 PayPal-Python-SDK 时未发送或接收资金

Heroku 上的 Paypal 商家-SDK-Ruby 授权问题

paypal-php-sdk 中的 PayPal-Mock-Response

Thinkphp整合添加paypal sdk进行支付的测试