Certum数字证书 API

Certum品牌VSSL接入文档

1.certum品牌的ssl证书,验证方式新增dns_txt,dns_cname,涉及的接口有:1.下订单;2.重签订单;3.更新域名验证方式;4.获取域名列表

产品列表

ID品牌名称品牌级别品牌类型产品名称重签注意事项csr算法支持
197CertumDVflexCertum 域名级 TLS 证书csr 不能 更换常用名称支持RSA/ECC
202CertumDVflexCertum 域名级 IP 证书csr 不能 更换常用名称支持RSA/ECC
198CertumOVflexCertum 企业级 TLS 证书csr 不能 更换常用名称支持RSA/ECC

push通知

Certum支持对签发和取消订单操作执行 PUSH 主动通知,以避免您采用轮询方式增加服务器负担。(后续可考虑将Certum服务器ip加入白名单) 接入此通知准备工作:

1.下单参数说明

需要保证您在调用api下单接口时对 notifyUrl参数 赋予合法的api push 地址, 推送统一用 POST

2.验证机制

Certum提供了一种基于哈希消息认证码(HMAC)签名来验证 webhook 的方法

Certum将发送包含 Webhook 签名的特殊header: X-Webhook-Signature

为了验证接口上收到的签名,必须执行以下步骤:

1.将收到的请求的原始正文计算 HMAC。 将获得的 HMAC 编码为 base64 格式——这是计算出的签名。

2.将header中的签名X-Webhook-Signature与上一步中计算出的签名进行比较。如果它们相同,则意味着 Webhook 来自 Certum,并且其有效负载未被任何第 3 方修改。

代码示例-签名验证

NodeJS示例如下:

若apiKey的值是apiKey123

rawBody的值是data_test

则sig的值是ATyqaNp4B+lhM/xFRKyk4//VdVAbxYNbPvrlQrbbMj4=

const crypto = require('crypto');
const apiKey = '...';
module.exports.handler = async event => {
    // 验证用的请求头
    const sigHeader = event.headers['X-Webhook-Signature'];
    //接收的原始正文
    const rawBody = event.body;
    // 计算 base64 编码的签名
    const sig = crypto.createHmac('sha256', apiKey)
        .update(rawBody)
        .digest('base64');
    if (sig !== sigHeader) {
        // Webhook 签名不匹配,不被信任
        return {
          statusCode: 400,
          body: JSON.stringify({ message: 'Webhook rejected!' }),
        };
    }
    const webhookPayload = JSON.parse(rawBody).data;
    // Webhook 可信, 继续处理内部逻辑。。。
};

PHP示例如下:

若apiKey的值是apiKey123

rawBody的值是data_test

则sig的值是ATyqaNp4B+lhM/xFRKyk4//VdVAbxYNbPvrlQrbbMj4=


define('apiKey', '...');
//接收的原始正文
$rawBody = file_get_contents('php://input');
// 验证用的请求头
$sigHeader = getallheaders()['X-Webhook-Signature'];
// 计算 base64 编码的签名
$sig = base64_encode(hash_hmac('sha256', $rawBody, apiKey, true));
// Webhook 签名不匹配,不被信任
if ($sig !== $sigHeader) {
    return;
}
$webhookPayload = json_decode($rawBody, true)['data'];
// Webhook 可信, 继续处理内部逻辑。。。

3.确认接收:
正确处理并接收 PUSH 消息后,请您 8s内 返回http状态码 200, 以及json 格式的消息: {"status":"success"} 告知服务器处理成功,否则均表示为接收失败,

当Certum 获取到处理失败信息时,将会按照下列的推送频率继续此消息的推送

4.推送频率:
为保障您的系统可以成功接收到我们推送的信息,我们将按照7个阶段进行推送。您的程序可以在任何一个阶段中的任何一次推送中进行确认接收。一旦完成确认

接收成功,我们将会停止接下来的推送。

倘若您的程序在第七阶段(最后阶段)任然无法完成确认接收,本次通知将会失效,我们不再保留这条推送任务。您需要通过其他API方式获取证书信息。

一阶段: 实时推送一次,若没有完成确认接收;将会立即再推送第二次,若依然没有完成确认接收,则立即继续尝试第三次推送。如果依然没有完成确认接收,则进行下一个阶段。

二阶段: 每隔1分钟再次尝试推送,共尝试5次

三阶段: 每隔5分钟再次尝试推送,共尝试5次

四阶段: 每隔1小时再次尝试推送,共尝试1次

五阶段: 每隔2小时再次尝试推送,共尝试1次

六阶段: 每隔12小时再次尝试推送,共尝试1次

七阶段: 每隔24小时再次尝试推送,共尝试1次

5.请求头数据类型
Content-Type 为 application/json

6.请求体:
Certum根据您的 下单的 notifyUrl 传递的接口地址 使用post 传输 json 推送数据

6.1.1证书签发的推送信息:

{
    "auth": {
        "authToken": "c55eed1e30e4f3cb36de07c9f76d50c8",
        "randomStr": "success"
    },
    "notifyInfo": {
        "orderNo": "2021011221355666",
        "certID": 142932802604630016,
        "status": "3004",
        "statusDesc": "issued",
        "serialNumber": "ebdd502ca70645e0acdbf0c9a43f6af",
        "certContent": "-----BEGIN CERTIFICATE-----\nMIIFpDCCBIygAwIBAgIQDr3VAspzZF4Kzb8MmkP2rzANBgkqhkiG9w0BAQsFADCB\njzELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQsQH\n/+YpBRT6Kd1WsedeyquzGBd3DPU94WGn6Kg7VHwP5/Iz7IhAYyNrtg4uVdqXwF0c\nEi4viTme6Deqo8Gizr5n7NlANwGaKKbNP2yiTLipp93bya1WRQvtiES4b17hYYMS\nOj6cikgJBJo=\n-----END CERTIFICATE-----\n",
        "midCertContent": "-----BEGIN CERTIFICATE-----\bxmRE1a6Vqe8YAsOf4vmSyrcjC8azjUeqkk+B5\nyOGBQMkKW+ESPMFgKuOXwIlCypTPRpgSabuY0MLTDXJLR27lk8QyKGOHQ+SwMj4K\n00u/I5sUKUErmgQfky3xxzlIPK1aEn8=\n-----END CERTIFICATE-----\n-----BEGIN CERTIFICATE-----\nMIIFg6pKJmBHaIkU4MiRTOok3JMrO66BQavHHxW/BBC5gA\nCiIDEOUMsfnNkjcZ7Tvx5Dq2+UUTJnWvu6rvP3t3O9LEApE9GQDTF1w52z97GA1F\nzZOFli9d31kWTz9RvdVFGD/tSo7oBmF0Ixa1DVBzJ0RHfxBdiSprhTEUxOipakyA\nvGp4z7h/jnZymQyd/teRCBaho1+V\n-----END CERTIFICATE-----\n-----BEGIN CERTIFICATE-----\nMIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEb\nMBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowAVGI/6ugLOpyypEBMs1OUIJqsi\nl2D4kF501KKaU73yqWjgom7C12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3\nsmPi9WIsgtRqAEFQ8TmDn5XpNpaYbg==\n-----END CERTIFICATE-----\n",
        "notBefore": 1606262400000,
        "notAfter": 1637884799000,
        "commonName": "test.com",
        "domainNames": [
            "test.com"
        ],
        "sha1": "77ddc84576d56661867c0f95a341642e9699d350",
        "sha256": "0e27a14fcb7a6014ab0500171438ce1eeaeffa7d6f2006b344d5d3e1ed2835f7",
        "issuerCommonName": "Certum RSA Domain Validation Secure Server CA",
        "issuerCountry": "PL",
        "issuerOrg": "Certum Limited",
        "signatureAlgo": "SHA256-RSA",
        "encryption": "RSA",
        "keyLength": 2048,
        "keyCurve": ""
    }
}

6.1.2证书签发的推送信息解释

文字说明

参数名称类型描述
authobject身份验证对象
..authTokenstring待解密字符串
..randomStrstring随机字符串, authToken的解密结果应与此相等
notifyInfoobject通知消息对象
..orderNostring订单编号
..certIDint证书编号
..statusstring订单状态代码 3004
..statusDescstring状态描述 issued
..serialNumberstring证书序列号
..certContentstring证书
..midCertContentstring中间证书
..notBeforeint证书签发日期 时间戳 (毫秒)
..notAfterint证书到期日期 时间戳(毫秒)
..commonNamestring证书的常用名称
..domainNamesArray证书包含的所有域名数组
..sha1string证书的sha1值
..sha256string证书的sha256值
..issuerCommonNamestring颁发者通用名称
..issuerCountrystring颁发者国家
..issuerOrgstring颁发者组织
..signatureAlgostring证书签名算法
..keyCurvestring秘钥曲线(encryption为ECDSA(又名ECC)时成对出现) 如signatureAlgo为ECDSA-SHA384,encryption为ECDSA,keyCurve为P256
..encryptionstring加密算法
..keyLengthint私钥长度(encryption为RSA时成对出现)

图片说明

Certum数字证书 API

6.2.1证书取消的推送信息:

{
    "auth": {
        "authToken": "c55eed1e30e4f3cb36de07c9f76d50c8",
        "randomStr": "success"
    },
    "notifyInfo": {
        "orderNo": "202001016666",
        "certID": 142932802604630016,
        "status": "3005",
        "statusDesc": "canceld"
    }
}

6.2.2证书取消的推送参数解释

文字说明:
参数名称	类型	描述
auth	object	身份验证对象
..authToken	string	待解密字符串
..randomStr	string	随机字符串, authToken的解密结果应与此相等
notifyInfo	object	通知消息对象
..orderNo	string	订单编号
..certID	int	证书编号
..status	string	订单状态代码
..statusDesc	string	状态描述
图片说明:


订单状态码
状态码	类型	说明
1001	string	未支付(订单未支付或重签的差额未支付)
1002	string	已支付
1003	string	支付成功,但提交到ca申请订单异常,请联系客服
1004	string	已取消
1006	string	支付成功,但提交到ca申请订单超时,请联系客服
证书状态码

证书状态码
状态码	类型	说明
3002	string	已支付,等待签发
3003	string	支付成功,但提交到ca申请订单异常,请联系客服
3004	string	已签发
3005	string	已取消
3006	string	支付成功,但提交到ca申请订单超时,请联系客服

重签状态码
状态码	类型	说明
"" 空	string	还未申请重签
5001	string	重签申请中
5002	string	重签申请成功
5003	string	重签申请失败
5004	string	重签需要补差价,但没有补交(暗示余额不足),仅与1001有关,但当订单状态为1002时则不需关注

域名验证状态码
状态码	类型	说明
2001	string	未验证
2002	string	已验证
2001-CAA	string	未验证且待签发域名存在CAA记录。需要用户删除CAA记录或添加对应ca的记录后重新下单才可以签发
2002-CAA	string	已验证但待签发域名存在CAA记录。需要用户删除CAA记录或添加对应ca的记录后重新下单才可以签发

ov验证状态码
状态码	类型	说明
2000	string	不需要此验证
2001	string	未验证
2002	string	已验证

ev验证状态码
状态码	类型	说明
2000	string	不需要此验证
2001	string	未验证
2002	string	已验证

签发前状态汇总状态码
状态码	类型	说明
2001	string	未验证
2002	string	已验证

错误信息格式

code值见错误码

{
    "code": 6000, 
    "msg": "错误信息", 
    "data": null
}

错误码
//下订单接口
    SuccessCode = 200 //success
    ServerError = 500 //服务端错误
    BalanceNotEnough         = 6000 //账户余额不足
    NoProduct                = 6001 //暂未提供相应产品
    ParamFormatInvalid       = 6002 //参数类型或参数名有误
    YearInvalid              = 6003 //年限不支持
    DcvMethodInvalid         = 6004 //dcvMethod 不支持
    GlobalsignNoEmail        = 6005 //globalsign暂不支持email域名验证方式
    CsrInvalid               = 6006 //csr 不合法
    UnSupportIP              = 6007 //不支持IP
    DomainInvalid            = 6008 //域名不合法
    UnSupportWildCard        = 6009 //不支持通配
    OrderNoInvalid           = 6010 //订单号错误
    RecommitDenied           = 6011 //此订单不满足重新提交的条件
    OrderOverYears           = 6012 //订单已超过有效期
    FreeCertNoResign         = 6013 //免费证书不能重签
    CertIssueNotDoneNoResign = 6014 //证书未颁发完成不能重签,重签后未颁发完成,也不能重签
    CsrNoOrgInvalid          = 6015 //csr 必须包含企业信息
    OrderPayedAlready        = 6016 //csr 订单已支付
    //取消订单
    ReCancelDenied            = 6100 //不能重复取消订单
    ReSignedCancelDenied      = 6101 //重签成功的订单不允许取消
    ReChargeCancelDenied      = 6102 //不支持取消充值订单
    FreeCertCancelDenied      = 6103 //免费证书不允许取消
    IssuedAfter30CancelDenied = 6104 //证书颁发30天后,不能退款
    //下载证书
    CertUnIssued = 6200 //证书未签发完成
    //修改验证方式
    UpdateDcvUnSupported   = 6300 //此产品不支持修改验证方式
    IPUpdateDcvUnSupported = 6301 //ip不允许修改验证方式
    DomainNotExist         = 6302 //域名不存在,请重试
    DomainHasBeenVerified  = 6303 //域名已验证,无需更改验证方式
    CanNotUpdateSameDcv    = 6304 //不能更换相同的验证方式
    NoNeed2VerifyDcv       = 6305 //此证书无需请求验证
    LackOfOrderInfo        = 6306 //缺少必要订单信息
    //重新生成dcvToken
    ReGenDcvTokenUnSupport = 6400 //不支持此品牌
    DomainNotFound         = 6401 //未找到此域名
    //删除域名
    DeleteDomainDenied    = 6500 //域名已经验证,不允许删除
    DeleteDomainUnSupport = 6501 //此产品不支持删除域名,请联系客服处理
    //获取域名列表
    PageNumError  = 6600 //页码输入有误
    PageSizeError = 6601 //记录数输入有误
    //重发邮件
    ReSendEmailFailed     = 6702 //重发邮件失败
    ReSendEmailNotSupport = 6703 //不支持邮件重发
    //订单状态
    TryReCommit   = 6800 //订单处理失败,请尝试重新提交
    OrderCreating = 6801 //订单生成中
    //下载证书
    CertCancelled = 6900 //证书已退款,被取消使用
    //联系人信息参数错误
    ContactNull      = 7000 //联系人不能为空
    FirstNameInvalid = 7001 //FirstName 错误
    LastNameInvalid  = 7002 //LastName 错误
    PositionInvalid  = 7003 //Position 错误
    EmailInvalid     = 7004 //Email 错误
    TelephoneInvalid = 7005 //电话 错误
    //企业信息参数错误
    OrgInfoNull                = 7100 //企业信息不能为空
    OrgNameInvalid             = 7101 //OrgName 错误
    CreditCodeInvalid          = 7102 //CreditCode 错误
    CountryInvalid             = 7103 //Country 错误
    ProvinceInvalid            = 7104 //Province 错误
    LocalityInvalid            = 7105 //Locality 错误
    AddressInvalid             = 7106 //Address 错误
    PostalCodeInvalid          = 7107 //PostalCode 错误
    JoiCountryInvalid          = 7108 //JoiCountry 错误
    JoiProvinceInvalid         = 7109 //JoiProvince 错误
    JoiLocalityInvalid         = 7110 //JoiLocality 错误
    RegistAddrInvalid          = 7111 //RegistAddr 错误
    DateOfIncorporationInvalid = 7112 //DateOfIncorporation 错误
    OrgExitsAlready            = 7113 //企业信息已存在
    OrgNotExist                = 7114 //公司不存在
    ProfileAddSuccessCertsExceeded = 8000 //任务添加成功,但证书数量已到达上限,本次任务放弃执行
    ProfileAddSuccessTaskRunError  = 8001 //任务添加成功,立即执行失败
    //生成csr
    KeyCurveInvalid           = 9000 //请检查加密曲线参数格式
    KeySizeInvalid            = 9001 //不支持您输入的加密位数
    EncryptionHashSignInvalid = 9002 //encryption与hashSign参数格式错误
    //多语言另加
    PayAimInvalid = 10000 //支付目的错误
    ReIssueErrToReCommit =10001 //重签出错,联系客服
    //ct log
    ParseURLError = 11000 //解析url错误
    ParseQueryError = 11001 //解析url query 错误
    ParamNullError =11002 //参数为空

账户

余额查询
https://sslapi.0654.cn/finance/balance
HEADERS
apiKey
     <your apiKey>秘钥

POST
1.生成csr

https://sslapi.0654.cn/certificates/csr
请求参数解释
Table
参数名称	Req/Opt	类型	描述
country	required	string	ISO3166国家码 如:CN 代表中国
domain	required	string	主域名(常用名称),注意:只需要一个域名即可,flex产品的附加域名无需赋值在这个字段
encryption	required	string	加密算法(RSA/ECC)
hashSign	required	string	哈希签名算法 可选值:(SHA256,SHA384,SHA512)
keyCurve	optional	string	ECC密钥曲线,仅当encryption为ECC时必传 可选值:(P256,P384)
keySize	optional	int	加密位数,仅当encryption为RSA时必传 可选值:(2048,3072,4096)
locality	optional	string	城市
orgUnit	optional	string	企业部门
organization	optional	string	公司名称
province	optional	string	省份

响应参数解释
参数名称	类型	描述
code	int	状态码,200; 500及其他错误码
msg	string	错误或成功信息提示
data	object	返回信息描述的对象
..csr	string	csr
..key	string	key

HEADERS
apiKey   <your apiKey>
 秘钥
POST
 2.下订单
https://sslapi.0654.cn/certificates/id/:pNo
下订单注意:
1.所有ev证书(增强级)不支持ip和通配, 产品列表里 只有ov(企业级)支持ip
2.所有品牌的包含通配域名的证书都不再支持文件验证。比如 非flex通配符证书 以及flex的证书中含有通配域名都不支持文件验证

3.订单分flex和非flex产品,下单参数有所不同,请查看Example Request(示例请求)右边下拉箭头
请求参数解释:
参数名称	Req/Opt	类型	描述
year	optional	int	1.免费证书不需要此参数 2.申请几年的证书;仅支持1年的有(globalsign,alphassl),仅支持1-5年的有(sectigo,positivessl),支持1-6年的有(geotrust,rapidssl,digicert,securesite,thawte,securesitechina,geotrustchina)
dcvMethod	required	string	(1)除certum外的其他品牌ssl仅支持三种:file文件验证,dns验证,email邮件验证
(2)certum新增dns_txt和dns_cname验证方式
(3)globalsign和alphassl不支持邮件验证
csr	required	string	csr 提示:csr如果粘贴在json中后有格式错误,可以把csr的换行都换成\n,若ECC算法,仅支持P256,P384; 某些品牌不支持ECC算法
domainNames	optional	string	用逗号连接的域名字符串,没有子域名可不写,不包含主域名,主域名会默认取csr里的
contactInfo	required	object	联系人信息 SSL证书必需
..lastname	required	string	姓
..firstname	required	string	名
..position	required	string	职位
..email	required	string	邮箱
..telephone	required	string	电话
notifyUrl	optional	string	通知回调地址
includeRootDomain	optional	string	常用名称是否赠送上级域名。可选值是Y或N。
Y代表赠送,N代表不赠送。默认Y
includeWWWDomain	optional	string	常用名称是否赠送www域名。可选值是Y或N。
Y代表赠送,N代表不赠送。默认Y
orgInfo	optional	object	公司信息,ov/ev SSL证书必需
..orgName	required	string	公司名称
..creditCode	required	string	社会信用代码
..country	required	string	国家
..province	required	string	省份或州
..locality	required	string	城市
..address	required	string	地址
..postalCode	required	string	邮编
..telephone	required	string	手机号
..joiCountry	required	string	注册国家
..joiProvince	required	string	注册省份或州
..joiLocality	required	string	注册城市
..registryAddr	required	string	注册地址
..dateOfIncorporation	required	string	注册日期 ,格式必须为 yyyy-mm-dd 如:2006-01-02

响应参数解释
参数名称	类型	描述
code	int	状态码,200; 500及其他错误码
msg	string	错误或成功信息提示
data	object	返回信息描述的对象
..certID	int	证书编号(重签的证书的编号一定大于重签之前的证书编号)
..cost	int	订单金额(分)
..orderNo	string	订单编号

HEADERS
apiKey
<your apiKey>

秘钥
PATH VARIABLES
pNo
197

产品ID

GET3.获取域名列表
https://sslapi.0654.cn/certificates/domains/:orderNo
响应参数解释
参数名称	类型	描述
code	int	状态码,200; 500及其他错误码
data	object	返回信息描述的对象
..domainList	object	域名的列表
.. ..dnsNames	Array	相同根域名组成的数组,他们公用一种验证方式. ip单独
.. ..domainID	int	域名id,仅digicert产品线(geotrust,rapidssl,digicert,securesite,thawte,securesitechina,geotrustchina)有,其他为0
.. ..email	string	邮箱验证时的邮箱
.. ..status	string	域名验证状态
.. ..dcvMethod	string	域名验证方式(返回的域名验证方式和请求时不一样,
(1)CNAME_CSR_HASH对应dns
(2)HTTP_CSR_HASH对应file
(3)EMAIL对应email
(4)DNS_TXT对应dns_txt
(5)DNS_CNAME对应dns_cname
.. ..fileDcvPath	string	域名验证方式为文件验证时需要用到的文件验证路径;验证方式为非文件验证时也会返回作为常用参数。注意:路径中的{FQDN}请替换成dnsNames 参数中的完整域名,例: "dnsNames": ["1.example.com","2.example.com"], 则文件验证路径为对应的两个:http://1.example.com/.well-known/pki-validation/gsdv.txt 和 http://2.example.com/.well-known/pki-validation/gsdv.txt。 若"dnsNames": "140.12.56.8",则 http://140.12.56.8/.well-known/pki-validation/gsdv.txt。 本次更新与之前的差别在于:之前的文件验证路径只需要顶级域名或ip进行文件验证即可,而现在是每个域名本身都要进行文件验证
.. ..recordType	string	用于验证的记录类型
.. ..hostRecord	string	用于验证的主机记录值
.. ..hashValue	string	用于验证的 hash值/token
.. ..uniqueValue	string	sectigo.possitivessl类证书重签后返回的唯一值
msg	string	错误或成功信息提示

HEADERS
apiKey
<your apiKey>

秘钥

PATH VARIABLES
orderNo
202201020304

订单号

PUT
4.请求验证域名
https://sslapi.0654.cn/certificates/verifyDomains/:orderNo
响应参数解释
参数名称	类型	描述
code	int	状态码,200; 500及其他错误码
msg	string	错误或成功信息提示
data	object	返回信息描述的对象
HEADERS
apiKey
<your apiKey>

秘钥
PATH VARIABLES
orderNo
202201020304

订单号

GET
5.查看订单状态
https://sslapi.0654.cn/certificates/status/:orderNo
响应参数解释

Table
参数名称	类型	描述
code	int	状态码,200; 500及其他错误码
data	object	返回信息描述的对象
..status	object	状态信息
.. ..certPrepareStatus	string	证书准备状态,请查看 "签发前状态汇总状态码"
.. ..certStatus	string	证书状态 请查看 "证书状态码"
.. ..dcvStatus	string	域名验证状态 请查看 "域名验证状态码"
.. ..evValidationStatus	string	ev证书企业验证状态 请查看 "ev验证状态码"
.. ..isReSignOrder	string	是否为重签订单,若是"Y",则所有状态都是重签后的订单状态
.. ..orderStatus	string	订单状态 请查看 "订单状态码"
.. ..ovValidationStatus	string	ov证书企业验证状态 请查看 "ov验证状态码"

HEADERS
apiKey
<your apiKey>

秘钥

PATH VARIABLES
orderNo
202201020304

订单号

GET
6.下载证书
https://sslapi.0654.cn/certificates/download/:orderNo
响应参数解释

参数名称	类型	描述
code	int	状态码,200; 500及其他错误码
data	object	返回信息描述的对象
..certInfo	object	证书信息
.. ..serialNumber	string	证书序列号
.. ..certContent	string	证书
.. ..midCertContent	string	中间证书
.. ..notBefore	int	证书签发日期 时间戳 (毫秒)
.. ..notAfter	int	证书到期日期 时间戳(毫秒)
.. ..commonName	string	证书的常用名称
.. ..domainNames	Array	证书包含的所有域名数组
.. ..sha1	string	证书的sha1值
.. ..sha256	string	证书的sha256值
.. ..issuerCommonName	string	颁发者通用名称
.. ..issuerCountry	string	颁发者国家
.. ..issuerOrg	string	颁发者组织
.. ..signatureAlgo	string	证书签名算法
.. ..keyCurve	string	秘钥曲线(encryption为ECDSA(又名ECC)时成对出现) 如signatureAlgo为ECDSA-SHA384,encryption为ECDSA,keyCurve为P256
.. ..encryption	string	加密算法
.. ..keyLength	int	私钥长度(encryption为RSA时成对出现)
msg	string	错误或成功信息提示

HEADERS
apiKey
<your apiKey>

秘钥

PATH VARIABLES
orderNo
202201020304

订单号

POST
7.重签订单
https://sslapi.0654.cn/certificates/reissue
注意:免费证书不支持重签
请求参数解释

参数名称	Req/Opt	类型	描述
csr	required	string	csr 提示:csr如果粘贴在json中后有格式错误,可以把csr的换行都换成\n,若ECC算法,仅支持P256,P38; 某些品牌不可更换生成csr的常用名称 ; 某些品牌不支持ECC算法
dcvMethod	required	string	域名验证方式;
(1)除certum外的其他品牌ssl仅支持三种:file文件验证,dns验证,email邮件验证
(2)certum新增dns_txt和dns_cname验证方式
(3)globalsign和alphassl不支持邮件验证
domainNames	optional	string	用逗号连接的域名字符串,没有子域名可不写,不包含主域名,主域名会默认取csr里的
orderNo	required	string	要重签的订单号
includeRootDomain	optional	string	常用名称是否赠送上级域名。可选值是Y或N。
Y代表赠送,N代表不赠送。默认Y
includeWWWDomain	optional	string	常用名称是否赠送www域名。可选值是Y或N。
Y代表赠送,N代表不赠送。默认Y

响应参数解释
参数名称	类型	描述
code	int	状态码,200; 500及其他错误码
msg	string	错误或成功信息提示
data	object	返回信息描述的对象
..certID	int	新证书编号
..priceDiff	int	重签差价(分)

HEADERS
apiKey
<your apiKey>

秘钥

Example Request
2.重签订单
curl
curl --location 'https://sslapi.0654.cn/certificates/reissue' \
--header 'Content-Type: application/json' \
--header 'apiKey: <your apiKey>' \
--data '{
    "csr": "string", 
    "dcvMethod": "string", 
    "domainNames": "string", 
    "orderNo": "string"
}'
Example Response
Body
Headers (0)
json
{
  "code": 200,
  "msg": "ok",
  "data": {
    "certID": 142932802604636670,
    "priceDiff": 66666
  }
}
PUT
8.更新域名验证方式
https://sslapi.0654.cn/certificates/dcv

注:  (1)除certum产品外,验证方式仅支持 :file, email, dns 必须小写,certum产品另加dns_txt,dns_cname两种验证方式
    (2)globalsign,alphassl不允许 修改

PUT
8.更新域名验证方式
https://sslapi.0654.cn/certificates/dcv
Plain Text
注:  (1)除certum产品外,验证方式仅支持 :file, email, dns 必须小写,certum产品另加dns_txt,dns_cname两种验证方式
    (2)globalsign,alphassl不允许 修改
请求参数解释
参数名称	Req/Opt	类型	描述
approverEmailPrefix	optional	string	邮件前缀
是newMethod为email时的必须参数,取值admin,webmaster,hostmaster,postmaster,administrator
newMethod	required	string	新的域名验证方式;
*(1)除certum外的其他品牌ssl仅支持三种:file文件验证,dns验证,email邮件验证(2)certum新增dns_txt和dns_cname验证方式_*\_
(3)globalsign和alphassl修改请联系客服
orderNo	required	string	订单号
响应参数解释
参数名称	类型	描述
code	int	状态码,200; 500及其他错误码
msg	string	错误或成功信息提示
data	object	返回信息描述的对象
HEADERS
apiKey
<your apiKey>

秘钥

Example Request
3.更新域名验证方式
curl
curl --location --request PUT 'https://sslapi.0654.cn/certificates/dcv' \
--header 'apiKey: <your apiKey>' \
--header 'Content-Type: application/json' \
--data '{
    "approverEmailPrefix": "admin", 
    "newMethod": "dns", 
    "orderNo": "202011161616021650"
}'
Example Response
Body
Headers (0)
json
{
  "code": 200,
  "data": null,
  "msg": "更新域名验证方式请求成功"
}
PUT
9.重发邮件
https://sslapi.0654.cn/certificates/reSendDcvEmail/:orderNo
响应参数解释
参数名称	类型	描述
code	int	状态码,200; 500及其他错误码
msg	string	错误或成功信息提示
data	object	返回信息描述的对象
HEADERS
apiKey
<your apiKey>

秘钥

PATH VARIABLES
orderNo
202201020304

订单号

Example Request
5.重发邮件
curl
curl --location --request PUT 'https://sslapi.0654.cn/certificates/reSendDcvEmail/202201020304' \
--header 'apiKey: <your apiKey>'
Example Response
Body
Headers (0)
json
{
  "code": 200,
  "msg": "发送成功",
  "data": null
}
GET
10.取消订单
https://sslapi.0654.cn/certificates/cancel/:orderNo
响应参数解释
参数名称	类型	描述
code	int	状态码,200; 500及其他错误码
msg	string	错误或成功信息提示
data	object	返回信息描述的对象
HEADERS
apiKey
<your apiKey>

秘钥

PATH VARIABLES
orderNo
202201020304

订单号

Example Request
9.取消订单
curl
curl --location 'https://sslapi.0654.cn/certificates/cancel/202201020304' \
--header 'apiKey: <your apiKey>'
Example Response
Body
Headers (0)
json
{
  "code": 200,
  "msg": "ok",
  "data": null
}
GET
11.证书日志查询
https://sslapi.0654.cn/certificates/ctLogs?domain=&pageID=&includeSubDomains=
请求参数解释
参数名称	Req/Opt	类型	描述
domain	required	string	域名
pageID	optional	string	分页,页码ID
includeSubDomains	optional	boolean	是否包
响应参数解释

参数名称	类型	描述
code	int	状态码,200; 500及其他错误码
msg	string	错误或成功信息提示
data	object	返回信息描述的对象
..certs	array	证书数组(固定10个证书)
.. ..subject	string	域名(常用名称)
.. ..hash	string	证书哈希值(获取证书日志某证书详情必备参数certHash的值)
.. ..issuer	string	颁发者
.. ..notBefore	int	颁发日期
.. ..notAfter	int	过期日期
.. ..ctLogsCount	int	ct日志数量
.. ..dnsNamesCount	int	证书包含的子域名总数
..currentPage	int	当前页序号
..lastPageID	string	上一页的页码ID (pageID参数可选值)
..nextPageID	string	下一页的页码ID (pageID参数可选值)
..totalPage	int	总页码数

HEADERS
apiKey
<your apiKey>

秘钥

PARAMS
domain
域名

pageID
页码

includeSubDomains
是否包含子域名

Example Request
11.证书日志查询
View More
curl
curl --location 'https://sslapi.0654.cn/certificates/ctLogs?domain=test.com&pageID=1&includeSubDomains=%20false' \
--header 'apiKey: <your apiKey>'
Example Response
Body
Headers (0)
View More
json
{
  "code": 200,
  "data": {
    "certs": [
      {
        "subject": "baidu.com",
        "hash": "TAqITLXks/lDBFpaVQxGp669B8zSSn5SXSOLj+O9Gfc=",
        "issuer": "GlobalSign Organization Validation CA - SHA256 - G2",
        "notBefore": 1555570576000,
        "notAfter": 1593063062000,
        "ctLogsCount": 6,
        "dnsNamesCount": 52
      },
      ...
      {
        "subject": "baidu.com",
        "hash": "5HrK7ywqpEZaaQxwabeHpITp0uIZbDbVPDMCx/QVM24=",
        "issuer": "GlobalSign Organization Validation CA - SHA256 - G2",
        "notBefore": 1571908623000,
        "notAfter": 1593063062000,
        "ctLogsCount": 9,
        "dnsNamesCount": 50
      }
    ],
    "currentPage": 4,
    "lastPageID": "YmFpZHUuY29tOnRydWU6ZmFsc2U6OkNCUVFBUT09",
    "nextPageID": "YmFpZHUuY29tOnRydWU6ZmFsc2U6OkNDZ1FBUT09",
    "totalPage": 18
  },
  "msg": "ok"
}
GET
12.证书日志某证书详情
https://sslapi.0654.cn/certificates/ctLogs/cert?certHash=
请求参数解释
参数名称	Req/Opt	类型	描述
certHash	required	string (urlEncode)	证书hash值

响应参数解释
参数名称	类型	描述
code	int	状态码,200; 500及其他错误码
msg	string	错误或成功信息提示
data	object	返回信息描述的对象
..certInfo	object	证书信息
.. ..subject	string	C=CN代表country为中国;O代表组织(公司);OU代表企业部门;L代表城市;ST代表省份;STREET代表地址;postalCode代表邮编;CN代表常用名称;E-mail代表邮箱
.. ..issuer	string	颁发者
.. ..serialNumber	string	序列号
.. ..notBefore	int	颁发日期
.. ..notAfter	int	过期日期
.. ..dnsNames	array	证书包含的域名列表
HEADERS
apiKey
<your apiKey>

秘钥

PARAMS
certHash
证书hash值

Example Request
12.证书日志某证书详情
View More
curl
curl --location 'https://sslapi.0654.cn/certificates/ctLogs/cert?certHash=AJ%252Bdx9ghIcyjs7QtAIWpTIRiwd1UVoPUOqLgzMKYWX4%253D' \
--header 'apiKey: <your apiKey>'
Example Response
Body
Headers (0)
View More
json
{
  "code": 200,
  "data": {
    "certInfo": {
      "subject": "C=CN, O=Beijing Baidu Netcom Science Technology Co., Ltd, OU=service operation department, L=beijing, ST=beijing, CN=baidu.com",
      "issuer": "C=BE, O=GlobalSign nv-sa, CN=GlobalSign Organization Validation CA - SHA256 - G2",
      "serialNumber": "72:58:78:36:6E:9F:56:E8:1D:41:88:48",
      "notBefore": 1585811098000,
      "notAfter": 1627277462000,
      "dnsNames": [
        "baidu.com",
        "baifubao.com",
        "www.baidu.cn",
        "www.baidu.com.cn",
        "mct.y.nuomi.com",
        "apollo.auto",
        "dwz.cn",
        "*.baidu.com",
        "*.baifubao.com",
        "*.baidustatic.com",
        "*.bdstatic.com",
        "*.bdimg.com",
        "*.hao123.com",
        "*.nuomi.com",
        "*.chuanke.com",
        "*.trustgo.com",
        "*.bce.baidu.com",
        "*.eyun.baidu.com",
        "*.map.baidu.com",
        "*.mbd.baidu.com",
        "*.fanyi.baidu.com",
        "*.baidubce.com",
        "*.mipcdn.com",
        "*.news.baidu.com",
        "*.baidupcs.com",
        "*.aipage.com",
        "*.aipage.cn",
        "*.bcehost.com",
        "*.safe.baidu.com",
        "*.im.baidu.com",
        "*.baiducontent.com",
        "*.dlnel.com",
        "*.dlnel.org",
        "*.dueros.baidu.com",
        "*.su.baidu.com",
        "*.91.com",
        "*.hao123.baidu.com",
        "*.apollo.auto",
        "*.xueshu.baidu.com",
        "*.bj.baidubce.com",
        "*.gz.baidubce.com",
        "*.smartapps.cn",
        "*.bdtjrcv.com",
        "*.hao222.com",
        "*.haokan.com",
        "*.pae.baidu.com",
        "*.vd.bdstatic.com",
        "click.hm.baidu.com",
        "log.hm.baidu.com",
        "cm.pos.baidu.com",
        "wn.pos.baidu.com",
        "update.pan.baidu.com"
      ]
    }
  },
  "msg": "ok"
}
GET
13.订单筛选
https://sslapi.0654.cn/certificates/orders?commonName=&certPrepareStatus=&pageNumber=&certStatus=&orderStatus=
请求参数解释
参数名称	Req/Opt	类型	描述
commonName	optional	string	常用名称(域名或公司名)
orderStatus	optional	string	订单状态
certPrepareStatus	optional	string	证书签发前准备状态
certStatus	optional	string	证书状态
cancelled	optional	string	订单是否已取消(Y/N)
dateCreated	optional	string	订单创建时间或创建时间段(举例:2022-05-19T12:00:00或2022-05-19T12:00:00…2022-05-20T13:00:00)
pageNumber	optional	string	请求页码,如果订单数量超过100将会分页返回
响应参数解释
参数名称	类型	描述
code	int	状态码,200; 500及其他错误码
msg	string	错误或成功信息提示
data	object	返回信息描述的对象
..currentPage	int	当前页
..returnCount	int	当前返回订单数
..totalOrders	int	总订单数
..totalPages	int	总页数
..orders	array	订单数组(固定100个证书)
.. ..orderNo	string	订单号
.. ..productNo	string	产品编号
.. ..commonName	string	域名(常用名称)
.. ..orderStatus	string	订单状态
.. ..ovValidationStatus	string	ov订单验证状态
.. ..evValidationStatus	string	ev订单验证状态
.. ..dcvStatus	string	域名验证状态
.. ..certPrepareStatus	string	证书签发前准备状态
.. ..certStatus	string	证书状态
.. ..submitDateStamp	int	订单提交(创建)时间戳
.. ..payDateStamp	int	订单支付时间戳(未支付订单为 0)

HEADERS
apiKey
<your apiKey>

秘钥

PARAMS
commonName
常用名称(域名或公司名)

certPrepareStatus
证书签发前准备状态

pageNumber
请求页码,如果订单数量超过100将会分页返回

certStatus
证书状态

orderStatus
订单状态
展开评论