List Certificate¶
显示设备绑定的证书列表。
操作权限¶
需授权的资源 | 所需操作权限 |
---|---|
设备管理 | Read |
请求格式¶
GET https://{apigw-address}/connect-service/v2.0/certificates?action=list
请求参数 (URI)¶
注解
以下非必须字段中,必须提供 assetId
或 productKey
+ 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 |
|
revokerReason | String |
|
错误码¶
代码 | 类型 | 描述 | 解决方法 |
---|---|---|---|
99400 | invalid argument: Device identifier is invalid | 设备标识符无效。 | 在请求中声明 assetId 或 productKey + 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);
}
}
}
}