List Certificate

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

操作权限

需授权的资源

所需操作权限

设备管理

Read

请求格式

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

请求参数 (URI)

备注

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

名称

位置

必需/可选

数据类型

描述

orgId

Query

必需

String

资产所属的组织ID。如何获取orgId信息>>

assetId

Query

可选

String

资产ID。如何获取Asset ID信息>>

productKey

Query

可选

String

设备资产的product key。

deviceKey

Query

可选

String

设备资产的device key。

响应参数

名称

数据类型

描述

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

IoT Hub证书服务内部错误。

联系管理员。

99500

Internal error of product service.

IoT Hub产品服务内部错误。

联系管理员。

99500

Internal error of IoT hub service

IoT Hub 内部服务错误。

联系管理员。

示例

请求示例

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

响应示例

{
    "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=Envision Digital, O=Envision, 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=Envision Digital, O=Envision, 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"
        }
    ]
}

Java SDK调用示例

package com.envisioniot.enos.api.sample.connect_service.cert;

import com.envision.apim.poseidon.config.PConfig;
import com.envision.apim.poseidon.core.Poseidon;
import com.envisioniot.enos.connect_service.v2_1.cert.ListCertificatesRequest;
import com.envisioniot.enos.connect_service.v2_1.cert.ListCertificatesResponse;
import com.envisioniot.enos.connect_service.vo.CertificateInfo;
import com.envisioniot.enos.connect_service.vo.DeviceIdentifier;

import java.util.List;

public class ListCert {

    public static void main(String[] args) {
        ListCertificatesRequest listCertificatesRequest = new ListCertificatesRequest();
        String appKey = "AccessKey of your APP";
        String appSecret = "SecretKey of your APP";
        String serverUrl = "https://{apigw-address}";

        String orgId = "yourOrgId";
        /*
         * 使用以下任意一个参数或参数组合以指定设备:
         * ASSET_ID
         * PRODUCT_KEY + DEVICE_KEY
         */
        listCertificateRequest.setAssetId(yourAssetId);
        listCertificateRequest.setProductKey(yourProductKey);
        listCertificateRequest.setDeviceKey(yourDeviceKey);
        listCertificatesRequest.setDevice(device);
        listCertificatesRequest.setOrgId(orgId);
        ListCertificatesResponse certRsp = Poseidon.config(PConfig.init().appKey(appKey).appSecret(appSecret).debug())
                .url(serverUrl)
                .getResponse(listCertificatesRequest, ListCertificatesResponse.class);
        List<CertificateInfo> certificateInfos = certRsp.getData();
        if (certificateInfos != null) {
            for (CertificateInfo certificateInfo : certificateInfos) {
                System.out.println(certificateInfo);
            }
        }
    }
}