更新时间:2024-12-17 GMT+08:00

吊销证书

吊销证书后,将清除该证书所有的记录,包括私有CA的记录,且无法恢复,请谨慎操作。

吊销私有证书相关参数详情请参见吊销证书参数说明

import com.huaweicloud.sdk.ccm.v1.CcmClient;
import com.huaweicloud.sdk.ccm.v1.model.RevokeCertificateRequest;
import com.huaweicloud.sdk.ccm.v1.model.RevokeCertificateRequestBody;
import com.huaweicloud.sdk.ccm.v1.model.RevokeCertificateResponse;
import com.huaweicloud.sdk.core.auth.GlobalCredentials;

/**
 * 吊销私有证书
 */
public class RevokeCertificateExample {
    /**
     * 基础认证信息:
     * - ACCESS_KEY: 华为云账号Access Key
     * - SECRET_ACCESS_KEY: 华为云账号Secret Access Key
     * - DOMAIN_ID: 华为云账号ID 
     * - CCM_ENDPOINT: 华为云CCM服务(PCA属于CCM下的微服务)访问终端地址
     * 认证使用的ak和sk硬编到代码中或明文存储存在较大安全风险,建议在配置文件或环境变量中密文存放,使用时解密,确保安全;
     * 本示例ak和sk保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK。
     */
    private static final String ACCESS_KEY =  System.getenv("HUAWEICLOUD_SDK_AK");
    private static final String SECRET_ACCESS_KEY = System.getenv("HUAWEICLOUD_SDK_SK");
    private static final String DOMAIN_ID = "<DomainID>";
    private static final String CCM_ENDPOINT = "<CcmEndpoint>";

    public static void main(String[] args) {
        // 1.准备访问华为云的认证信息,PCA为全局服务
        final GlobalCredentials auth = new GlobalCredentials()
                .withAk(ACCESS_KEY)
                .withSk(SECRET_ACCESS_KEY)
                .withDomainId(DOMAIN_ID);

        // 2.初始化SDK,传入认证信息及CCM服务的访问终端地址
        final CcmClient ccmClient = CcmClient.newBuilder()
                .withCredential(auth)
                .withEndpoint(CCM_ENDPOINT).build();

        // 3、构造请求参数
        // (1)需要吊销的终端实体证书的ID
        String certId = "5554a381-af92-4336-a943-811396c87616";

        // (2)填写吊销原因(枚举值,请参考API文档查询对应参数),对应的吊销代码将会被写入吊销列表中
        // 默认值:UNSPECIFIED
        RevokeCertificateRequestBody requestBody = new RevokeCertificateRequestBody();
        requestBody.setReason("UNSPECIFIED");

        // 4、构造请求体
        RevokeCertificateRequest request = new RevokeCertificateRequest()
                .withCertificateId(certId)
                .withBody(requestBody);

        // 5、开始发起请求
        RevokeCertificateResponse response;
        try {
            response = ccmClient.revokeCertificate(request);
        } catch (Exception e) {
            throw new RuntimeException(e.getMessage());
        }

        // 6、获取响应消息,吊销成功后,无响应内容,返回的状态码为204
        System.out.println(response.getHttpStatusCode());
    }

}