开发者社区> 问答> 正文

#支付宝 如何从RSA1升级到RSA2?

如何从RSA1升级到RSA2?

展开
收起
保持可爱mmm 2020-05-05 16:42:19 1125 0
1 条回答
写回答
取消 提交回答
  • 背景

    RSA2密钥:是指密钥长度为2048位的密钥。(目前设置在“接口加签方式”)

    RSA密钥:是指密钥长度为1024位的密钥。(设置在“使用其他加签方式”)

    注意:开放平台从2018年1月5日开始创建的应用都没有RSA密钥的设置入口,统一升级到更安全的RSA(SHA256)签名方式,建议您尽快升级,具体详情查看【蚂蚁金服开放平台接口签名方式升级公告】。

    左边的为2018年1月5日前创建的应用,右边为2018年1月5日后创建的应用,如下图:

    200325-2.png

    目前“接口加签方式”又分为RSA2密钥和公钥证书(公钥证书只支持RSA2格式),因此如何从RSA1升级到RSA2可以理解为升级为RSA2密钥签名和升级为公钥证书签名。

    支付宝开放平台接口签名方式升级,请按照以下步骤来完成升级:

    一、升级为RSA2密钥 1、生成RSA2密钥

    生成RSA2密钥详见【如何设置RSA2公钥】(密钥长度请选择RSA2)。

    200325-3.png

    2、上传应用公钥

    把生成的商户应用公钥上传给支付宝,详见【上传商户公钥并换取支付宝公钥】。

    需将RSA2密钥的商户应用公钥上传至“接口加签方式”的“公钥”位置。

    注意:资金类接口(现金红包、单笔转账到支付宝账户等)必须使用公钥证书,其他接口可使用普通公钥。

    200325-4.png

    3、修改签名方式

    sdk中关于RSA和RSA2密钥签名封装的初始化方法一致,无需修改,只要修改配置信息即可。

    (1)修改“商户密钥”为步骤1新生成的RSA2私钥。

    (2)修改“sign_type”的参数值为RSA2。

    (3)修改“支付宝公钥”为步骤2获取的支付宝公钥,详见【如何获取支付宝公钥】。

    注意:验签的时候支付宝公钥需要改成可配置的,因为RSA2的支付宝公钥每个商户都不一样,不能统一默认。

    二、升级为公钥证书 1、生成公钥证书

    生成公钥证书详见【如何生成公钥证书】(请选择RSA2)。

    注意:目前不支持国密的签名方式。

    200325-5.png

    2、上传公钥文件

    把生成的商户应用公钥文件上传给支付宝,详见【上传商户公钥并换取支付宝公钥】。

    需将RSA2密钥的商户应用公钥上传至“接口加签方式”的“公钥证书”位置。

    200325-6.png

    3、修改签名方式

    sdk中关于RSA密钥和公钥证书签名封装的初始化方法不同,需修改初始化方法和配置信息。

    (1)修改“商户密钥”为步骤1新生成的RSA2私钥。

    (2)修改“sign_type”的参数值为RSA2。

    (3)在商户应用公钥上传后,下载应用公钥证书、支付宝公钥证书、支付宝公钥根证书。

    (4)修改“支付宝公钥”数据为引用“支付宝公钥证书”的路径

    (5)添加引用“应用公钥证书”和“支付宝公钥根证书”。

    (6)修改初始化方法,详见【RSA2和证书公钥签名验签的区别】的sdk封装签名方式。

    根据自己开发语言,选择对应的公钥证书签名初始化进行参考。

    注意事项:公钥证书验签使用的是支付宝公钥证书,以及验签方法不同,详见【如何使用证书签名验签】。

    2020-05-05 16:42:29
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载

相关实验场景

更多