域名SSL证书检测
<h3>接口描述</h3>
<ul>
<li>根据网址解析SSL证书信息,包括:主题信息、签发者信息、序列号、有效起始日期、有效结束日期、签名算法、公钥信息、公钥算法、密钥用法、扩展密钥用法、基本约束、证书版本、证书签名等;</li>
<li>支持解析证书链;</li>
<li>可用于定期检查网站 SSL 证书的有效性、网站安全性等;</li>
</ul>
<h3>请求地址</h3>
<p><code>https://api.jumdata.com/ssl/certificate/query</code></p>
<h3>请求方式</h3>
<ul>
<li>GET, POST</li>
</ul>
<h3>请求格式</h3>
<ul>
<li>application/x-www-form-urlencoded</li>
</ul>
<h3>请求参数</h3>
<table>
<thead>
<tr>
<th>名称</th>
<th>类型</th>
<th>必须</th>
<th><div style="width:420px">说明</div></th>
</tr>
</thead>
<tbody>
<tr>
<td>appId</td>
<td>String</td>
<td>是</td>
<td>服务商分配的唯一标识</td>
</tr>
<tr>
<td>timestamp</td>
<td>Long</td>
<td>是</td>
<td>当前时间的毫秒数</td>
</tr>
<tr>
<td>sign</td>
<td>String</td>
<td>是</td>
<td>签名,见签名算法说明</td>
</tr>
<tr>
<td>url</td>
<td>String</td>
<td>是</td>
<td>网址</td>
</tr>
</tbody>
</table>
<h3>签名算法说明</h3>
<pre><code>sign = sha256(appId + appSecret + timestamp)</code></pre>
<p>用服务商分配的 appId、服务商分配的 appSecret,当前时间毫秒数 timestamp,按上述顺序拼接成字符串,再进行 sha256 哈希得到。如下:</p>
<pre><code class="language-java">String appId = &quot;xyzxy2121zxyz&quot;;
String timestamp = &quot;1555378976238&quot;;
String appSecret = &quot;efcefcef1121cefcefc1212121&quot;;
String str = appId + appSecret + timestamp;
String sign = sha256(str);</code></pre>
<h3>正确返回样例</h3>
<pre><code class="language-json">{
&quot;code&quot;: 200,
&quot;msg&quot;: &quot;成功&quot;,
&quot;taskNo&quot;: &quot;986901198151630094255882&quot;,
&quot;charge&quot;: true,
&quot;data&quot;: {
&quot;count&quot;: 3, // 整个证书链的证书总数
&quot;items&quot;: [ // 证书链,第一个为被检测的证书,最后一个为根证书
{
&quot;subjectCN&quot;: &quot;*.jumdata.com&quot;, // 主题通用名称
&quot;subjectO&quot;: &quot;&quot;, // 主题组织,DV证书不返回
&quot;subjectOU&quot;: &quot;&quot;, // 主题组织单位,DV证书未必返回
&quot;subjectC&quot;: &quot;CN&quot;, // 主题国家,DV证书未必返回
&quot;subjectST&quot;: &quot;Zhejiang Province&quot;, // 主题省份,DV证书未必返回
&quot;subjectL&quot;: &quot;HangZhou&quot;, // 主题城市,DV证书未必返回
&quot;issueC&quot;: &quot;US&quot;, // 签发者国家
&quot;issueCN&quot;: &quot;RapidSSL TLS RSA CA G1&quot;, // 签发者通用名称
&quot;issueO&quot;: &quot;DigiCert Inc&quot;,// 签发者组织
&quot;issueOU&quot;: &quot;www.digicert.com&quot;, // 签发者组织单位称
&quot;startTime&quot;: &quot;2025-02-13 08:00:00&quot;, // 有效期开始
&quot;endTime&quot;: &quot;2026-02-01 07:59:59&quot;, // 有效期结束时间
&quot;validityPeriod&quot;: &quot;317天&quot;, // 有效期剩余时间
&quot;status&quot;: &quot;正常&quot;, // 证书状态:正常、过期、域名不匹配
&quot;serialNumber&quot;: &quot;0F D8 E6 5B E6 F3 0E F6 A4 04 60 D2 80 DB E1 46&quot;, // 序列号
&quot;certificateType&quot;: &quot;OV&quot;, // 证书类型
&quot;version&quot;: 3, // 证书版本
&quot;publicKeyAlgorithm&quot;: &quot;RSA&quot;, // 公钥算法
&quot;publicKeyExponent&quot;: 65537, // 公钥指数
&quot;publicKeyLen&quot;: &quot;2048&quot;, // 公钥长度
&quot;publicKeyValue&quot;: &quot;BE A4 7E C8 CD 62 D5 CB 48 73 9D 85 3A 64 A9 41 18 C3 69 75 F3 86 A4 C8 2D A3 B6 87 56 17 A7 B7 3B 24 B9 C5 50 1A CF 7C 2F 6C 9E 56 E7 83 BF A6 46 62 D9 38 E0 DC 94 28 69 33 75 04 68 72 74 65 63 54 08 27 34 5C 37 3E D8 ED F7 96 A9 AF 10 FC 29 C3 61 68 54 16 D1 68 C0 6B 8E C8 6C 3C 05 3C 93 7C 01 33 79 82 50 05 4B D2 63 39 41 C8 8D 2E EA 53 B7 39 10 15 C5 EA 8C 39 2F 40 79 4D 3B 44 0B 6D D7 5B 4F 52 D2 9E 9C 4C A5 83 A1 29 FD 90 54 7E AD 42 51 D8 3D 20 CA 79 B2 10 F8 06 07 73 D3 83 19 C6 E2 97 94 C5 4C C4 B8 68 43 EA 88 2C 36 59 73 C3 65 CF 14 6B D6 8B 86 9D 22 1E 1E C0 3D 8F 06 E6 7F 17 D3 3F C9 E5 1D 29 E6 AC A4 03 30 61 A7 AF 82 64 07 4C 74 72 2C 3E 69 18 7B B4 7A 0F 0F CC CC 06 6B 25 D6 94 68 38 CB FE 28 07 94 71 16 DB 15 61 DA F8 F2 76 4F 79 F5 F7 A5 E3&quot;, // 公钥信息
&quot;keyUsage&quot;: &quot;DigitalSignature,Key_Encipherment&quot;, // 密钥使用
&quot;extendedKeyUsage&quot;: &quot;serverAuth,clientAuth&quot;, // 扩展密钥使用
&quot;sHA1Fingerprint&quot;: &quot;0A BD 83 8E C9 85 46 B1 DF 59 BC 2C 70 A3 78 E8 D0 61 49 42&quot;, // 指纹sha1
&quot;sHA256Fingerprint&quot;: &quot;C6 62 55 FF DE 58 C8 A7 C1 31 56 1A 02 7D FE 34 3C 26 CD FE 7D 11 2D CF 7C 38 E4 84 10 50 9A E6&quot;, // 指纹sha256
&quot;sans&quot;: [
&quot;*.jumdata.com&quot;,
&quot;jumdata.com&quot;
], // 主题备用名称
&quot;signatureAlgorithm&quot;: &quot;SHA256withRSA&quot;, // 签名算法
&quot;signature&quot;: &quot;1A 51 8F 65 D6 1F 9F 41 01 FA 81 40 B1 D9 14 22 A4 AB 8C 71 46 52 0B 91 F0 44 EF 6A 1B 04 6A 12 D1 45 A3 D5 E4 A5 A0 CB A3 BD 2E D8 EE 59 B4 51 60 69 EC 34 71 98 89 F0 31 E1 1E 1D 9B 76 1D ED 1F 5B EB FC DF 57 EA C2 FD AA E5 6A 90 CC 13 81 E0 22 D6 7E 53 75 D2 F4 22 FF B2 81 F4 8C BC 89 AC 20 CE 9B FD D1 1E 4F 90 57 76 C6 94 81 01 01 00 46 C7 7B 8E 6A 92 E1 93 08 2A 15 C9 8E 5A 33 BC 15 15 D5 77 C2 6B B4 D4 DC CA 8E A9 32 61 07 A6 4F 56 CC EB 8A 43 40 94 41 11 E0 52 CB 74 BF E2 F6 7F 6D 19 E2 C7 C9 34 BD 5E 54 20 63 89 F7 7C A1 BC 2D FD 96 66 17 58 29 39 A3 CD AB D5 9A 15 E4 0A 5C A8 5E 80 79 8D 8D AF B0 6A 29 06 7D B9 3F F9 5E 3D C4 0B 16 5A 6F 5E 7D A6 DD 50 17 57 27 55 29 FB 25 B3 6B 1A A5 0E ED 47 B1 54 55 AE 5B 91 E1 FE C0 66 C9 1A 34 F9 46 60 0D B8 AD&quot;,
&quot;basicConstraints&quot;: -1, // 基本约束
&quot;subjectKeyIdentifier&quot;: &quot;27 08 0B BE EE 28 00 A4 DB C1 93 6D 33 E4 4E EC &#039;1 EE EF A9 4&quot;, // 主题密钥标识符
&quot;authorityKeyIdentifier&quot;: &quot;0C DB 6C 82 49 0F 4A 67 0A B8 14 EE 7A C4 48 52 88 EB 56 38&quot;, // 授权密钥标识符
&quot;crlUrl&quot;: &quot;http://cdp.rapidssl.com/RapidSSLTLSRSACAG1.crl&quot;, // CRL分发点
&quot;caUrl&quot;: &quot;http://cacerts.rapidssl.com/RapidSSLTLSRSACAG1.crt&quot;, // CA签发者
&quot;ocspUrl&quot;: &quot;http://status.rapidssl.com&quot; // 在线证书状态协议
},
...
]
}
}</code></pre>
<h3>错误返回样例</h3>
<pre><code class="language-json">{
&quot;code&quot;: 400,
&quot;msg&quot;: &quot;url不能为空&quot;
}</code></pre>
<h3>返回字段说明</h3>
<table>
<thead>
<tr>
<th>字段名</th>
<th><div style="width:420px">说明</div></th>
</tr>
</thead>
<tbody>
<tr>
<td>code</td>
<td>返回码,详见code返回码说明</td>
</tr>
<tr>
<td>msg</td>
<td>code对应的描述</td>
</tr>
<tr>
<td>charge</td>
<td>是否计费</td>
</tr>
<tr>
<td>taskNo</td>
<td>本次请求号</td>
</tr>
<tr>
<td>data</td>
<td>返回具体结果,object类型,详见data返回字段描述</td>
</tr>
</tbody>
</table>
<h4>code返回码说明</h4>
<table>
<thead>
<tr>
<th>code</th>
<th><div style="width:420px">说明</div></th>
</tr>
</thead>
<tbody>
<tr>
<td>200</td>
<td>成功 (计费)</td>
</tr>
<tr>
<td>201</td>
<td>未解析到证书</td>
</tr>
<tr>
<td>400</td>
<td>参数错误</td>
</tr>
<tr>
<td>404</td>
<td>接口地址不正确</td>
</tr>
<tr>
<td>500</td>
<td>系统维护,请稍候再试</td>
</tr>
<tr>
<td>601</td>
<td>接口未开通</td>
</tr>
<tr>
<td>602</td>
<td>账号停用</td>
</tr>
<tr>
<td>603</td>
<td>余额不足请充值</td>
</tr>
<tr>
<td>604</td>
<td>接口停用</td>
</tr>
<tr>
<td>606</td>
<td>调用超限,请稍候再试</td>
</tr>
<tr>
<td>607</td>
<td>ip不在白名单</td>
</tr>
<tr>
<td>609</td>
<td>请求过于频繁,请稍候再试</td>
</tr>
<tr>
<td>610</td>
<td>请求超时</td>
</tr>
<tr>
<td>999</td>
<td>其他,以实际返回为准</td>
</tr>
</tbody>
</table>