Revoke Certificate¶
撤销设备绑定的证书。
操作权限¶
需授权的资源 |
所需操作权限 |
---|---|
设备管理 |
Full Access |
约束条件¶
该设备存在
该证书与该设备绑定
该证书属于有效状态
请求格式¶
POST https://{apigw-address}/connect-service/v2.0/certificates?action=revoke
请求参数 (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。 |
请求参数(Body)¶
名称 |
必需/可选 |
数据类型 |
描述 |
---|---|---|---|
certSn |
必需 |
Integer |
需要撤销的证书序列号。 |
reason |
可选 |
Integer |
撤销证书的原因。包括下列选项: + 0: UNSPECIFIED.未确定证书为何被吊销。 + 1: KEY_COMPROMISE.已知或怀疑证书使用者的私钥已被破坏。 + 3: AFFILIATION_CHANGED. 主体的名称或其他信息已更改。 + 4: SUPERSEDED:证书已被取代. 比如证书更新请求后原证书撤销。 + 5: CESSATION_OF_OPERATION. 不再需要该证书。 + 6: CERTIFICATE_HOLD. 证书已被搁置、冻结等。 + 9: PRIVILEGE_WITHDRAWN. 授予证书主体的授权已被撤消,即认为CA已经无效,没有权限授权证书,该证书已经不可信。 |
错误码¶
代码 |
类型 |
描述 |
解决方法 |
---|---|---|---|
99400 |
invalid argument: Device identifier is invalid |
设备标识符无效。 |
在请求中声明 |
99400 |
Invalid Argument certSn:certSn is missing |
缺少 |
在请求中传入正确的 |
99400 |
Call ca error!: Certificate service err info:, code: (code), message: (message content), detail message: (detailed message content) |
调用EnOS证书服务参数异常。 |
详细错误信息原因由message或 detail message给出。 |
99400 |
Invalid cert request!message: (message content), detail message: (detailed message content) |
无效证书请求。 |
详细错误信息原因由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给出。 |
99400 |
Serial number of the certificate to be updated is required. |
待更新证书的序列号是必需字段。 |
在请求中声明 |
99400 |
Serial number of the new certificate is invalid (less than 0). |
传入的证书序列号无效(小于0)。 |
确保请求中声明的 |
99400 |
The certificate list bound to the device does not have the certificate,or the certificate is bound to other devices. |
原证书未与设备绑定或绑定另一个设备。 |
确保证书有效。 |
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 内部服务错误。 |
联系管理员。 |
错误码¶
代码 |
类型 |
描述 |
解决方法 |
---|---|---|---|
99400 |
invalid argument: Device identifier is invalid |
设备标识符无效。 |
在请求中声明 |
99400 |
Invalid Argument certSn:certSn is missing |
缺少 |
在请求中传入正确的 |
99400 |
Call ca error!: Certificate service err info:, code: (code), message: (message content), detail message: (detailed message content) |
调用EnOS证书服务参数异常。 |
详细错误信息原因由message或 detail message给出。 |
99400 |
Invalid cert request!message: (message content), detail message: (detailed message content) |
无效证书请求。 |
详细错误信息原因由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给出。 |
99400 |
Serial number of the certificate to be updated is required. |
待更新证书的序列号是必需字段。 |
在请求中声明 |
99400 |
Serial number of the new certificate is invalid (less than 0). |
传入的证书序列号无效(小于0)。 |
确保请求中声明的 |
99400 |
The certificate list bound to the device does not have the certificate,or the certificate is bound to other devices. |
原证书未与设备绑定或绑定另一个设备。 |
确保证书有效。 |
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 内部服务错误。 |
联系管理员。 |
示例¶
请求示例¶
url: https://{apigw-address}/connect-service/v2.0/certificates?action=revoke&assetId=yourDeviceAssetId&orgId=yourOrgId
method: POST
requestBody:
{
"reason":0,
"certSn":52739
}
响应示例¶
{
"code":0,
"msg":"OK",
"requestId":"e3391ff8-19ba-4809-b944-c1b29f468af9",
"data":null
}
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.RevokeCertificateRequest;
import com.envisioniot.enos.connect_service.v2_1.cert.RevokeCertificatesResponse;
import com.envisioniot.enos.connect_service.v2_1.cert.RevokeReason;
import com.envisioniot.enos.connect_service.vo.DeviceIdentifier;
public class RevorkCert {
public static void main(String[] args) {
String appKey = "yourAppAccessKey";
String appSecret = "yourAppSecretKey";
String serverUrl = "https://{apigw-address}";
String orgId = "yourOrgId";
Integer certSn = 2661;
RevokeCertificateRequest request = new RevokeCertificateRequest();
/*
* 使用以下任意一个参数或参数组合以指定设备:
* ASSET_ID
* PRODUCT_KEY + DEVICE_KEY
*/
request.setAssetId(yourAssetId);
request.setProductKey(yourProductKey);
request.setDeviceKey(yourDeviceKey);
request.setDevice(identifier);
request.setCertSn(certSn);
request.setOrgId(orgId);
request.setReason(RevokeReason.UNSPECIFIED);
RevokeCertificatesResponse certRsp = Poseidon.config(PConfig.init().appKey(appKey).appSecret(appSecret).debug())
.url(serverUrl)
.getResponse(request, RevokeCertificatesResponse.class);
if (certRsp.success()) {
System.out.println("Certificate revoked.");
}
}
}