证书API(XML)接口文档

公共参数

名称 类型 是否必须 描述
accountHash String 固定值:1F2C2B234E494266FBC3
passCode String 固定值:SmartCA
aaCheckPoint String 固定值:SmartCA

演示环境webservice地址:http://cip.api.gf.demo.smartcert.cn/services/userAPI?wsdl

证书签发

根据pkcs10请求进行证书申请接口。

一、请求参数

名称 类型 是否必须 描述
certReqBuf String pkcs10标准的证书请求(CSR)
UserInfo UserInfo 用户信息

UserInfo 说明:

名称 类型 是否必须 描述
accountId int 账户ID
userName String 用户姓名
userSurname String 用户姓名确认
userSerialnumber String 用户序列号
userEmail String 用户邮箱
userOrganization String 是(O和OU至少一个) O所属组织
userOrgunit String 是(O和OU至少一个) OU所属单位
userCountry String 所属国家
userState String 所属市
userLocality String 所属区域
userStreet String 所属街道
userDns String 证书主题
userIp String ip
userTitle String 标题
userDescription String 描述
userAdditionalField1 String 证书扩展项

代码实例

public class EnrollCert {

private static String webserviceUrl = "http://cip.api.gf.demo.smartcert.cn/services/userAPI?wsdl";
private static String accountHash = "1F2C2B234E494266FBC3";
private static String aaCheckPoint = "SmartCA";
private static String passCode = "SmartCA";
private static String json = "";

public static void main(String[] args) {
try {
String certReqBuf = "MIHcMIGBAgEAMCExEjAQBgNVBAMMCeeOi+Wwj+W8ujELMAkGA1UEBhMCY24wWTATBgcqhkjOPQIBBggqgRzPVQGCLQNCAASKv9E0tmrl6gS6tTWRhPtGbFbfySDcrUc+gcXSofjyxtupXZz0rD+kJUH6qszBenyyc147jo+sZbdAQdUF+08bMAwGCCqBHM9VAYN1BQADSAAwRQIgWpTtcqraZ17qxrV4yMBGBc3dWX4Zjppl6ns/z0ocxrUCIQDMfSLFmVPIVD+lb5a6rWFB1wNSCah0daayzVwcUn0DZw==";
System.out.println(certReqBuf);
UserInfo userInfo = new UserInfo();
userInfo.setUserName("王小强");
userInfo.setUserSerialnumber("142729199807093316");
userInfo.setUserOrganization("组织");
userInfo.setUserOrgunit("单位");
userInfo.setUserLocality("L");
userInfo.setUserState("区");
UserAPIServicePortTypeProxy proxy = new UserAPIServicePortTypeProxy();
proxy.setEndpoint(webserviceUrl);
CertInfo certInfo = proxy.enrollCertAA(userInfo, certReqBuf, accountHash, aaCheckPoint, passCode, json);
System.out.println("当前申请的证书序列号是:[" + certInfo.getCertSerialNumber() + "]");
System.out.println("当前申请的证书公钥:[" + certInfo.getCertSignBuf() + "]");
System.out.println("证书有效期:[" + certInfo.getCertNotBefore() + " ~ " + certInfo.getCertNotAfter() + "]");
} catch (Exception e) {
e.printStackTrace();
}
}
}

二、响应参数

字段名称 描述
certStatus 状态
certReqDate 请求时间
certSignDate 签发时间
certSerialNumber 证书唯一序列号
certNotBefore 有效期起
certNotAfter 有效期止
certSignBuf 签发后的公钥证书信息
certSubjectDn 证书主题

三、成功示例

当前申请的证书序列号是:[00f2ad50f2d6e4ffea38b06679]
当前申请的证书公钥:[MIICVTCCAfugAwIBAgINAPKtl...]
证书有效期:[202102051549000 ~ 202202051549000]

Process finished with exit code 0

四、返回码说明(incorrect)

返回码 描述
0 证书签发成功
其它 参考异常代码表

证书注销

根据证书序列号进行吊销接口。

一、请求参数

名称 类型 是否必须 描述
serialNumber String 待被吊销的证书序列号

代码实例

public class RevokeCert {
private static String webserviceUrl = "http://cip.api.gf.demo.smartcert.cn/services/userAPI?wsdl";
private static String accountHash = "1F2C2B234E494266FBC3";
private static String aaCheckPoint = "SmartCA";
private static String json = "";

public static void main(String[] args) {
try {
UserAPIServicePortTypeProxy proxy = new UserAPIServicePortTypeProxy();
proxy.setEndpoint(webserviceUrl);
String serialNumber = "2020121800504669";
proxy.revokeCert(serialNumber, aaCheckPoint, "", accountHash, json);
} catch (Exception e) {
e.printStackTrace();
}
}
}

二、响应参数

不返回任何值,失败则抛出异常

三、返回码说明(incorrect)

返回码 描述
0 证书签发成功
其它 参考异常代码表

证书延期

根据原证书序列化或者原证书信息进行证书延期接口。

一、请求参数

名称 类型 是否必须 描述
CertInfo.serialNumber String 待延期的证书序列号
CertInfo.CertSignBuf String 待延期的证书信息

代码实例

public class UpdateCert {

private static String webserviceUrl = "http://172.16.2.157:30210/services/userAPI?wsdl";
private static String accountHash = "1F2C2B234E494266FBC3";
private static String aaCheckPoint = "SmartCA";
private static String json = "";

public static void main(String[] args) {
try {
UserAPIServicePortTypeProxy proxy = new UserAPIServicePortTypeProxy();
proxy.setEndpoint(webserviceUrl);
UserInfo userInfo = new UserInfo();
CertInfo oragin = new CertInfo();
oragin.setCertSerialNumber("2020121800504669");
oragin.setCertSignBuf("MIICijCCAjGgAwIBAgIIICASGABQRmkwCgYIKoEcz1UBg3UwdjEcMBoGA1UEAwwTU21hcnRDQV9UZXN0X1NNMl9DQTEVMBMGA1UECwwMU21hcnRDQV9UZXN0MRAwDgYDVQQKDAdTbWFydENBMQ8wDQYDVQQHDAbljZfkuqwxDzANBgNVBAgMBuaxn+iLjzELMAkGA1UEBhMCQ04wHhcNMjAxMjE4MDgwMDQ0WhcNMjExMjE4MDgwMDQ0WjCBnDEwMC4GA1UELQwnNGQxYWU0NGI5NTA1NGMxOGFhMzE5MWViZDE0MGVlNTMyMDIwMTIxMQswCQYDVQQGEwJDTjEPMA0GA1UECAwG5rGf6IuPMQ8wDQYDVQQHDAbljZfkuqwxEDAOBgNVBAoMB1NtYXJ0Q2ExETAPBgNVBAsMCOm7mOiupE9VMRQwEgYDVQQDDAvnjovlsI/lvLpAMzBZMBMGByqGSM49AgEGCCqBHM9VAYItA0IABIq/0TS2auXqBLq1NZGE+0ZsVt/JINytRz6BxdKh+PLG26ldnPSsP6QlQfqqzMF6fLJzXjuOj6xlt0BB1QX7TxujgYEwfzALBgNVHQ8EBAMCBsAwHQYDVR0OBBYEFG62KqVkixphP8D0WG0IjfT/Zh0fMB8GA1UdIwQYMBaAFFzzuiWMwmUM7Gfvvt2Na6der+OsMAwGA1UdEwQFMAMBAf8wIgYIKoEc0BQEAQEEFqAUExIxNDI3MjkxOTk4MDcwOTMzMTYwCgYIKoEcz1UBg3UDRwAwRAIgZY+jE+bJCcPiUKVb14tBiVfULd6P6O8+8uKaxkiU+h0CIC5Bm9HECMBYW8qZi4Iaf8UZOySIELQb0v+NdD8B2nKc");
CertInfo certInfo = proxy.renewCertAA(userInfo, oragin, accountHash, aaCheckPoint, "123456", json);
System.out.println("当前申请的证书序列号是:[" + certInfo.getCertSerialNumber() + "]");
System.out.println("当前申请的证书公钥:[" + certInfo.getCertSignBuf() + "]");
System.out.println("证书有效期:[" + certInfo.getCertNotBefore() + " ~ " + certInfo.getCertNotAfter() + "]");
} catch (Exception e) {
e.printStackTrace();
}
}
}

二、响应参数

data 结果信息 类型 描述
certStatus String 状态
certReqDate String 请求时间
certSignDate String 签发时间
certSerialNumber String 证书唯一序列号
certNotBefore String 有效期起
certNotAfter String 有效期止
certSignBuf String 签发后的公钥证书信息
certSubjectDn String 证书主题

三、成功示例

当前申请的证书序列号是:[00f2ad50f2d6e4ffea38b06679]
当前申请的证书公钥:[MIICVTCCAfugAwIBAgINAPKtU...]
证书有效期:[202102051549000 ~ 202302051549000]

Process finished with exit code 0

四、返回码说明(incorrect)

返回码 描述
0 延期成功
其它 参考异常代码表