V2.0 List Certificate


显示设备绑定的证书列表。

该 API 支持在 EnOS 2.1.0 及以上环境中使用。

操作权限


使用此 API 前,确保服务账号已被授予包含下列服务和操作权限的策略。有关授权服务账号的更多信息,参见 管理服务账号


需授权的服务 所需操作权限
证书 Read

请求格式

GET https://{apigw-address}/connect-service/v2.0/certificates?action=list

请求参数 (URI)

注解

以下非必需字段中,必须提供 assetIdproductKey + deviceKey 的组合,用于指定设备。

名称 位置(Path/Query) 必需/可选 数据类型 描述
orgId Query 必需 String 资产所属的组织 ID。如何获取 orgId 信息>>
assetId Query 可选(见上述注解) String 资产 ID。如何获取 assetId 信息>>
productKey Query 可选(见上述注解) String 设备的 product key,需与 deviceKey 一起使用。
deviceKey Query 可选(见上述注解) String 设备的 device key,需与 productKey 一起使用。

响应参数

名称 数据类型 描述
data DeviceCertDetailInfo 结构体数组 返回的证书列表。在大多数情况下,只有一个证书会被返回。如果资产有多个证书,只有一个是有效的。有关 DeviceCertDetailInfo 的定义,见 DeviceCertDetailInfo 结构体。

DeviceCertDetailInfo 结构体

名称 数据类型 描述
certSN String 证书编号。
cert String 申请到的证书内容。
certStatus Integer 证书状态: - 0: Valid - 1: Revoked - 2: Expired
issuer String 签发者信息。
subject String 请求主体信息。
signDate long 签发时间时间戳。
effectiveDate long 证书开始生效的时间戳。
expireDate long 证书过期的时间戳。
revoker String
certStatus 为 1 时才会出现。表示撤销者。
revokerReason String
certStatus 为 1 时才会出现。表示撤销原因。

错误码

代码 类型 描述 解决方法
99400 invalid argument: Device identifier is invalid 设备标识符无效。 在请求中声明 assetIdproductKey + deviceKey 以指定设备。
99400 Call ca error!: Certificate service err info:, code: (code), message: (message content), detail message: (detailed message content) 调用EnOS证书服务参数异常。 详细错误信息原因由message或 detail message给出。
99400 Query cert is failed!message: (message content), detail message: (detailed message content) 查询证书失败。 详细错误信息原因由message或 detail message给出。
99400 When calling Certificate Services, the call parameters are invalid.message: (message content), detail message: (detailed message content) 当调用证书服务时,调用参数无效。 详细错误信息原因由message或 detail message给出。
11404 Device cannot be found 设备未找到。 确认该设备确实存在。
99500 Internal error of certificate service 设备连接与管理证书服务内部错误。 联系管理员。
99500 Internal error of product service. 设备连接与管理产品服务内部错误。 联系管理员。
99500 Internal error of IoT hub service 设备连接与管理内部服务错误。 联系管理员。

示例

请求示例

url: https://{apigw-address}/connect-service/v2.0/certificates?action=list&assetId=yourAssetId&orgId=youOrgId
method: GET

响应示例

{
    "code": 0,
    "msg": "OK",
    "requestId": "318d8b1f-1f27-4dd4-8299-b75a2015d425",
    "data": [
        {
            "certSN": "52725",
            "cert": "52725",
            "certStatus": 1,
            "issuer": "EMAILADDRESS=ca@eniot.io, CN=EnOS CA, OU=EnOS CA, O=EnOS, L=Shanghai, ST=Shanghai, C=CN",
            "subject": "EMAILADDRESS=xT7EaR, OU=EnOS, CN=xMen1, O=EnOS, L=Shanghai, ST=Shanghai, C=CN",
            "signDate": 1581216505000,
            "effetiveDate": 1581216505000,
            "expireDate": 1582080505000,
            "revoker": "IoT_Hub",
            "revokerReason": "KEY COMPROMISE",
            "isEnosCert": true,
            "issueAuthority": "RSA"
        },
        {
            "certSN": "52726",
            "cert": "52726",
            "certStatus": 0,
            "issuer": "EMAILADDRESS=ca@eniot.io, CN=EnOS ECC CA, OU=EnOS, O=EnOS, L=Shanghai, ST=Shanghai, C=CN",
            "subject": "EMAILADDRESS=uKGdK, OU=EnOS, CN=yPI9z8z, O=EnOS, L=Shanghai, ST=Shanghai, C=CN",
            "signDate": 1581218161000,
            "effetiveDate": 1581218161000,
            "expireDate": 1582082161000,
            "audit": {
                "createBy": "youOrgId",
                "createTime": 1581218161773,
                "updateBy": "youOrgId",
                "updateTime": 1581218161773,
                "ns": "youOrgId",
                "deleted": false
            },
            "revoker": "",
            "revokerReason": "",
            "isEnosCert": true,
            "issueAuthority": "ECC"
        },
        {
            "certSN": "52727",
            "cert": "52727",
            "certStatus": 2,
            "issuer": "EMAILADDRESS=ca@eniot.io, CN=EnOS ECC CA, OU=EnOS, O=EnOS, L=Shanghai, ST=Shanghai, C=CN",
            "subject": "EMAILADDRESS=xT7EaR, OU=EnOS, CN=xMen1, O=EnOS, L=Shanghai, ST=Shanghai, C=CN",
            "signDate": 1581234648000,
            "effetiveDate": 1581234648000,
            "expireDate": 1581493848000,
            "revoker": "",
            "revokerReason": "",
            "isEnosCert": true,
            "issueAuthority": "ECC"
        }
    ]
}

SDK 示例


你可以在 Github 上获取接入服务的 SDK 示例: