CSR算法/大小不正确。期望的是RSA 2048。

19
我正在尝试将苹果支付与braintree集成。我已经按照以下说明启用了braintree中的苹果支付。在第一步中,如果您点击证书签名请求,它会下载一个braintree_app_pay.certSigningRequest文件,该文件用于苹果会员身份验证。

enter image description here

当我选择创建支付处理证书时,出现以下错误。在此输入图片描述

谁点击了关闭按钮,请告诉我原因!!! - casillas
这似乎是Braintree的问题。他们的技术支持对你的问题有何说法? - Robotic Cat
此问题不属于编程问题,而是关于业务功能的第三方支持,因此题外话。请参阅《为什么我们不是[您最喜爱的公司] 的客户支持?》(http://meta.stackoverflow.com/q/255745)。 - jscs
在SOF上,与Braintree相关的问题有972个。 - casillas
1
我在上传签名请求时使用的是Google Chrome,但根据建议改用Safari后就成功了! - Omar HossamEldin
8个回答

19

补充 @zepp 所说的,创建CRS时需要进行特定的指定,您可以通过以下过程来完成:

  1. 进入钥匙串访问。
  2. 点击证书助手。
  3. 点击从证书颁发机构请求证书(点击查看图片)。
  4. 输入所有信息并勾选“让我指定密钥对信息”复选框,然后点击继续。
  5. 选择密钥大小为256和算法为ECC(点击查看图片)。
  6. 然后点击继续。

2
文档明确指出,您必须使用Braintree提供的CSR。 - cream-corn
2
但是 Braintree 说:“在第一步中从 Braintree 下载的 CSR 文件必须上传。注意:您必须使用我们提供的 CSR 文件,不要自己创建 CSR 文件。” - JerryZhou

9

全面披露:我在 Braintree 工作。如果您有任何进一步的问题,请随时联系我们的支持团队

确保在选择要添加到 Apple Developer 门户中的证书类型时,在生产环境下选择Apple Pay 证书选项(即使这是针对沙箱环境的;详见Braintree Apple Pay 配置文档),生成 Apple Pay CSR 时应使用 ECC,而非 RSA。

以下是 CSR 提示屏幕的外观。虽然你将上传从 Braintree 获取而不是生成的 CSR,请注意 Apple 的密钥规格:

apple-pay-add-ios-certificate-about-creating-a-csr


但是它说“必须使用Braintree提供的CSR”。 - JerryZhou
当我尝试这个时,我仍然得到相同的错误,因为它需要算法RSA(2048),而不是ECC(256),正如我们在图片中看到的那样。 - Stoyan

5
请按以下步骤操作[如果使用Stripe或任何其他支付网关的Apple Pay]:
  1. 双击CSR(从Stripe下载),[它将打开证书助手]
  2. 点击继续
  3. 选择“从现有CA请求证书”,然后继续
  4. 在证书信息屏幕中,输入用户电子邮件地址、通用名称,将CA电子邮件地址留空,选择“保存到磁盘并检查让我指定密钥对信息”[选择您特定的位置并保存]
  5. 在密钥对信息屏幕中,选择“ECC”算法和选择密钥大小:256位,然后继续。

现在在您的支付处理证书中使用此CSR。


4

这个问题并不只是针对Apple Pay或Braintree - 当我尝试从Apple获取Safari证书时,遇到了同样的问题。

需要知道的重要信息是,在使用请求证书颁发机构证书命令之前,您需要选择iCloud钥匙串。如果没有选择,可能会激活另一个钥匙串,导致使用错误的密钥。


3

来自苹果开发者论坛

在钥匙串访问下拉菜单中,选择钥匙串访问 > 证书助手 > 从证书颁发机构请求证书。

  1. 在证书信息窗口中,输入以下信息:

    • 在用户电子邮件地址字段中,输入您的电子邮件地址。
    • 在通用名称字段中,为您的私钥创建一个名称(例如,John Doe Dev Key)。
    • CA电子邮件地址字段应该留空。
    • 在“请求是”组中,选择“保存到磁盘”选项。
    • 选择“让我指定密钥对信息”。
  2. 在钥匙串访问中单击“继续”,然后选择文件位置。
  3. 将密钥对信息设置为以下内容:
    • 算法:ECC
    • 密钥大小:256位
  4. 在钥匙串访问中继续完成CSR生成过程。

1

对我来说,当被问及“与此商户ID相关的付款是否将在中国境内独家处理?”时,我不小心选择了

选择解决了我的问题。


1
我不明白,因为在 braintree 网站上说“必须使用我们提供的CSR。不要自己创建CSR文件”。但是使用这个CSR文件,在苹果的上传页面上总是失败。
编辑: 最终我按照 @anjali-jariwala 的答案步骤成功上传。 只是在最后一步,我选择了 RSA2048 作为警告要求。

enter image description here


1
我曾经遇到同样的错误。我的错误在于在创建苹果开发者门户网站上的证书时选择了错误的类型。我使用了“Apple Pay商户身份证书”,但我需要使用“Apple Pay支付处理证书”,这解决了问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接