获取 API 凭证

为了您的业务与 ZOLOZ 服务之间能够安全传输信息,需要对传输消息进行签名、验证、加密和解密。因此需要您提前获取 API 凭证。

前置条件

  • 您已了解 网关协议信息传输安全 中的信息,以便创建 API 请求和处理具有安全考虑的响应。
  • 您已拥有 ZOLOZ 门户的管理员账号。有关如何设置 ZOLOZ 门户帐户的更多信息,请参见 ZOLOZ 账号设置

关于任务

下表显示了信息安全传输中所需的 API 凭证,以及 API 凭证的定义和用途。

API 凭证

描述

用途

客户 ID

账号的唯一标识。

用于识别消息发送端。

在请求签名的内容和响应验证的内容中均包含客户端 ID。

ZOLOZ 交易密钥对

ZOLOZ 提供的密钥对,包含一个公钥和一个私钥。

公钥的用途:

  • 加密发送给 ZOLOZ 的请求 。
  • 验证 ZOLOZ 响应的签名。

私钥的用途:

  • ZOLOZ 解密客户端发送的请求。
  • ZOLOZ 对返回给客户端的回复进行签名。

客户端交易密钥对

客户端提供的密钥对,包含一个公钥和一个私钥。

公钥必须在 ZOLOZ 门户注册,其用途为:

  • ZOLOZ 验证客户端请求中的签名。
  • ZOLOZ 加密返回给客户端的响应。

私钥的用途:

  • 客户端对发送给 ZOLOZ 的请求进行签名。
  • 客户端解密来自 ZOLOZ 的响应。

客户 ID 和 ZOLOZ 交易密钥对由 ZOLOZ 在创建管理员账号时自动生成。您可以从 ZOLOZ 门户获取客户 ID 和 ZOLOZ 交易公钥。

客户端交易密钥对可以通过以下两种方式来获取:

  • 由 ZOLOZ 门户自动生成。当您出于测试目的,想要快速在 ZOLOZ 门户注册客户端公钥时,建议使用此方法。
  • 自行手动生成,并将手动生成的公钥通过 ZOLOZ 门户注册。当您在生产环境中时,为了您的私钥安全,建议您使用此方法生成客户端密钥对。

该任务包括以下两部分:

    • 获取客户端 ID 和 ZOLOZ 交易公钥。
    • 生成客户端交易密钥对并在 ZOLOZ 门户中注册客户端交易公钥。

操作步骤

从 ZOLOZ 门户直接获取 API 凭证

  1. 使用您的用户名和密码登录 ZOLOZ 门户,然后进入 API Key 配置页面。
  2. 复制 Client ID 对应的字符串,并将其保存在本地以供后续使用。
  3. 复制 ZOLOZ transaction public key 对应的字符串,并将其保存在本地以供后续使用。
  4. 点击 Auto-generate 按钮,将为客户端自动生成一个 RSA 密钥对,其中
    • 客户端公钥对应的字符串将自动填写到 客户端交易公钥 对应的字段中。
      注意:请勿修改 客户端交易公钥 对应的内容。
    • 客户端私钥对应的字符串将以名为 Mercer_private_key.pem 的文件自动下载到您的本地。请妥善保管客户交易私钥,不要与任何人共享。
      注意:ZOLOZ 不保存客户端交易私钥,并且ZOLOZ 团队从不要求您提供客户端交易私钥。
  1. 点击 提交 按钮,则在 ZOLOZ 系统中注册客户端交易公钥。

image

手动生成客户端密钥对

您可以使用 OpenSSL 工具包或 KeyPairGenerator Java 类手动生成客户端交易密钥对。下面是两个示例:

示例 1:OpenSSL 工具包

copy
# Generate the private key, which will be used to sign your request.
# Note: this key cannot be directly used for Java. You need to transform the key to the PKCS8 format.
openssl genrsa -out priv_key_tmp.pem

# Transform the private key to the PKCS8 format if Java is used
openssl pkcs8 -topk8 -inform PEM -in priv_key_tmp.pem -outform PEM -nocrypt -out priv_key.pem 

# Generate the public key
openssl rsa -in priv_key_tmp.pem -pubout -out pub_key.pem 

# Generate the public key that is applicable to Java
cat pub_key.pem | grep -v "^\-" | tr -d "\n" | sed 's/%$//' > pub_key.base64

示例 2:Java 类

copy
KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");

SecureRandom secureRandom = new SecureRandom();
keyPairGenerator.initialize(2048, secureRandom);

KeyPair keyPair = keyPairGenerator.generateKeyPair();
Key publicKey = keyPair.getPublic();
Key privateKey = keyPair.getPrivate();

String publicKeyBase64 = Base64.getEncoder().encodeToString(publicKey.getEncoded());
String privateKeyBase64 = Base64.getEncoder().encodeToString(privateKey.getEncoded());

生成公钥后,您需要登录 ZOLOZ 门户,将客户端公钥对应的字符串拷贝到 API Key 配置页面中 客户端交易公钥 对应的字段,然后点击 提交 按钮。