List Certificate

List the certificates bound to the specified device.

Operation Permissions

Required Authorization

Required Operation Permission

Device Management

Read

Request Format

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

Request Parameters (URI)

Note

Use one of the following methods to specify the device:

  • Include assetId in the request

  • Include productKey + deviceKey in the request

Request Parameters (URI)

Name

Location (Path/Query)

Mandatory/Optional

Data Type

Description

orgId

Query

Mandatory

String

The organization ID which the asset belongs to. How to get Organization ID>>

assetId

Query

Optional (See Note above)

String

The asset ID. How to get assetId>>

productKey

Query

Optional (See Note above)

String

The product key. To be used with deviceKey .

deviceKey

Query

Optional (See Note above)

String

The device key. To be used with productKey .

Response Parameters

Response Parameters

Name

Data Type

Description

data

Array of DeviceCertDetailInfo Structs

A list of the certificates returned. For details of a DeviceCertDetailInfo Struct, see the table below.

DeviceCertDetailInfo Struct

DeviceCertDetailInfo Object

Name

Data Type

Description

certSN

String

The certificate number

cert

String

The certificate content.

certStatus

Integer

Certificate Status: - 0: Valid - 1: Revoked - 2: Expired

issuer

String

The information of the certificate authority.

subject

String

The request requestor information.

signDate

Long

The timestamp when the certificate was issued.

effectiveDate

Long

The timestamp when the certificate comes into effect.

expireDate

Long

The timestamp when the certificate expired.

revoker

String

The entity that revokes the certificate. Required only if certStatus is 1.

revokerReason

String

The reason why the certificate is revoked. Required only if certStatus is 1 .

Samples

Request Sample

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

Response Sample

{
    "code": 0,
    "msg": "OK",
    "requestId": "318d8b1f-1f27-4dd4-8299-b75a2015d425",
    "data": [
        {
            "certSN": "52725",
            "cert": "52725",
            "certStatus": 1,
            "issuer": "EMAILADDRESS=ca@gmail.com, 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,
            "audit": {
                "createBy": "youOrgId",
                "createTime": 1581217021695,
                "updateBy": "youOrgId",
                "updateTime": 1581217021695,
                "ns": "youOrgId",
                "deleted": false
            },
            "revoker": "IoT_Hub",
            "revokerReason": "KEY COMPROMISE",
            "isEnosCert": true,
            "issueAuthority": "RSA"
        },
        {
            "certSN": "52726",
            "cert": "52726",
            "certStatus": 0,
            "issuer": "EMAILADDRESS=ca@gmail.com, 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@gmail.com, 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,
            "audit": {
                "createBy": "youOrgId",
                "createTime": 1581234640405,
                "updateBy": "youOrgId",
                "updateTime": 1581234640405,
                "ns": "youOrgId",
                "deleted": false
            },
            "revoker": "",
            "revokerReason": "",
            "isEnosCert": true,
            "issueAuthority": "ECC"
        }
    ]
}

Error Code

Error codes

Code

Type

Solution

99400

invalid argument: The device identifier is invalid

Specify (assetId) or (productKey + deviceKey) in your request.

99400

Call ca error!: Certificate service err info:, code: (code), message: (message content), detail message: (detailed message content)

Refer to the “message” and “detailed message”.

99400

Query cert is failed!message: (message content), detail message: (detailed message content)

Refer to the “message” and “detailed message”.

99400

When calling Certificate Services, the call parameters are invalid.message: (message content), detail message: (detailed message content)

Refer to the “message” and “detailed message”.

11404

Device cannot be found

Ensure that the device exists and is registerd on EnOS.

99500

Internal error of certificate service.

Refer to your EnOS administrator.

99500

Internal error of product service.

Refer to your EnOS administrator.

99500

Internal error of IoT hub service.

Refer to your EnOS administrator.

Samples

Request Sample

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

Response Sample

{
    "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,
            "audit": {
                "createBy": "youOrgId",
                "createTime": 1581217021695,
                "updateBy": "youOrgId",
                "updateTime": 1581217021695,
                "ns": "youOrgId",
                "deleted": false
            },
            "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,
            "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 Sample

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";
        /*
         * Use one of the following methods to identify a device:
         * 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);
            }
        }
    }
}