第一步:生成 RSA 密钥

工具下载


支付宝为技术开发人员提供一键生成工具,便于开发者生成一对 RSA 密钥、公钥证书申请CSR文件(在线申请应用公钥证书需要)。


应用公钥(public key)需提供给支付宝账号管理者上传到支付宝开放平台;应用私钥(private key)由开发者自己保存,需填写到代码中供签名时使用加密的过程为系统使用公钥(public key)进行加密,并将密文发送到解密者,解密者用私钥(private key)解密将密文解码为明文。

开发者要保证接口中使用的私钥与此处的公钥匹配,否则无法调用接口。开发者可通过下方链接下载对应的密钥生成工具:

WINDOWS(windows版本工具请不要安装在含有空格的目录路径下)

MAC_OSX


WINDOWS老版本下载地址:WINDOWS

MAC OS老版本下载地址:MAC_OSX

注意:

密钥和应用(APPID)一一对应,即开发者需要为名下的每个应用分别设置密钥,且不同应用的密钥不能混用。


使用步骤


支付宝开放平台支持开发者使用普通公钥公钥证书两种签名方式下面分别向您介绍两种方式的工具操作步骤,包括如何使用密钥生成工具,生成应用公钥(public key)、应用私钥(private key)和公钥证书申请 CSR 文件;您也可以通过 视频版教程 快速了解。


普通公钥方式


1.下载相应环境工具并安装后即可使用,本步骤指引以 MAC_OSX 界面为例,如下图所示:


step1.jpg


2.开发者根据开发语言选择密钥格式和密钥长度,新建应用请务必使用 2048 位(目前已使用 1024 位密钥长度的应用仍然可以正常调用接口,详情请见开放平台接口签名方式升级公告)。点击 生成密钥 后,工具会自动生成商户应用公钥(public key)和应用私钥(private key),如下图所示:


step2.jpg


3.开发者点击工具界面下方的 打开文件位置,即可找到生成的公私钥文件,如下图所示:



4.生成密钥后,开发者就可以在应用的开发配置页面进行配置。点击 设置应用公钥 后,复制上一步生成的公钥,点击 保存,即可完成公钥的设置,如下图所示。


image.png

image.png


注意

生成的私钥需妥善保管,避免遗失,不要泄露。应用私钥需填写到代码中供签名时使用。应用公钥需提供给支付宝账号管理者上传到支付宝开放平台。


除了使用支付宝提供的一键生成密钥工具外,也可以使用 OpenSSL 工具命令生成密钥。点击了解相关教程


公钥证书方式


注意:

  1. 对于之前没有上传过任何公钥,首次接入即使用“公钥证书”的应用,不允许再切换到“公钥”模式。
  2. 对于从“公钥”变更到“公钥证书”模式的,在变更一周内允许开发者撤销证书回退到“公钥”模式;变更一周后不允许再回退到原模式。开发者调用支付宝网关的代码也需要升级,否则变更一周后原来的“公钥”模式接入会被支付宝网关拦截而无法成功调用,具体升级参考文档。
  3. 个人开发者因为不涉及到资金类接口,建议使用“公钥”方式进行加签。


若开发者使用公钥证书签名方式,开放平台支持通过上传 CSR 文件的方式给开发者在线签发应用公钥证书,新的开放平台 RSA 验签和签名工具支持生成 CSR 文件(个人用户由于不涉及到资金接口,建议使用普通公钥方式接入,降低接入成本),具体操作步骤如下:


同“普通公钥方式”一样,下载相应环境工具并安装后即可使用,本步骤指引以 MAC_OSX 界面为例:


1.点击工具界面下方的 点击获取,生成应用公钥证书 CSR 申请文件。

step3.jpg



2.点击进入 获取csr 页面后,根据如下提示完善填写信息,点击 生成CSR文件。请注意“组织/公司”名称一定要和开发者中心门户账号信息的公司名称保持一致,否则会导致后续步骤中上传csr证书文件校验失败

Tips:沙箱环境下“组织/公司”名称应填写为“沙箱环境”。

111.png

3.在生成 CSR 文件后,点击 打开密钥文件路径,在对应的文件夹里可以看到三个文件:应用公钥 key 串、应用私钥key 串,以及 csr格式的应用公钥证书文件。如下图所示:


image.png


4.生成公钥证书 CSR 申请文件,开发者就可以在应用的开发配置页面/接口加签方式进行配置(如下图 1)。点击 设置 后,选择公钥证书(如下图2)> 上传CSR文件在线生成证书 > 上传CSR文件在线生成,选择上一步骤生成的 .csr文件上传,即可完成公钥证书的设置,如下图所示。

image.png

image.png


注意:

生成的私钥需妥善保管,避免遗失,不要泄露。应用私钥需填写到代码中供签名时使用,并且必须保证应用私钥和上传到开放平台申请应用公钥证书的 CSR 文件是匹配的。

onlineServer