跳到主要内容

签名介绍

通过验证签名来保证请求的真实性和数据的完整性。

请求签名与验签

应用发送请求时需要使用自身的私钥对 API URL、消息体等关键数据的组合进行 SHA-256 with RSA 签名。请求的签名信息通过HTTP头 Authorization 传递,具体说明请见 签名生成指南 。没有携带签名或者签名验证不通过的请求,都不会被执行,并返回 401 Unauthorized 。平台在处理请求时会使用存储的公钥对签名进行验证,验证无误后会返回正确结果。

应用私钥与公钥

应用需要用户生成一个 2048bit 以上的 RSA 私钥,并导出公钥上传到TAMS平台。

  • 以下命令会生成一个 2048bit PKCS#1 PEM 格式的 RSA 私钥 private_key.pem:

    openssl genrsa -out private_key.pem 2048

    如果需要转换成 PKCS#8 格式的,可以使用以下命令导出至 private_key_pkcs8.pem:

    openssl pkcs8 -topk8 -inform PEM -in private_key.pem -outform PEM -nocrypt -out private_key_pkcs8.pem

    有时也需要转换成 DER 格式的(比如 Java 某些包),可以使用以下命令导出至 private_key.der:

    openssl pkcs8 -topk8 -inform PEM -outform DER -in private_key.pem -out private_key.der -nocrypt
  • 导出公钥 public_key.pem:

    openssl rsa -pubout -in private_key.pem -out public_key.pem

将 public_key.pem 上传到 TAMS 平台或交予开发或产品人员,在代码中使用 private_key.pem 或者私钥其他格式进行签名。

提示

不要把私钥文件暴露在公共场合