安全与信任 · DomScan 产品

SSL 证书 API 参考

获取 SSL 证书信息,包括颁发者、有效期和安全等级。

你将获得什么

获取 SSL 证书信息,包括颁发者、有效期和安全等级。

同步批量RESTMCPSDK交互式工具

适合选择此产品的场景

适用对象

使用范围明确的被动检查来补充分诊和调查,而不是替代授权测试或人工审查。

适合选择此产品的场景

需要在可用范围内检查公开 TLS 证书证据、有效性、名称和链相关信号时选择。

你将获得什么

获取 SSL 证书信息,包括颁发者、有效期和安全等级。

端点

集成前,请查看支持的操作、输入、输出、执行模式和响应限制。

GET /v1/certificates 查看 API 参考
POST /v1/certificates/bulk 查看 API 参考
GET /v1/ssl/audit 查看 API 参考阅读指南
GET /v1/ssl/deep-scan 查看 API 参考阅读指南
GET /v1/ssl/grade 查看 API 参考阅读指南
GET /v1/ssl/chain 查看 API 参考阅读指南
GET /v1/ssl/expiring 查看 API 参考阅读指南

积分和身份验证

1-10 需要身份验证。有关确切费用和按项计费,请查看操作参考。

操作示例

使用文档化的操作来收集、评估、补充、验证、比较、保护或监测公开证据。

GET /v1/certificates 积分: 2

查询参数

参数 类型 必需
domain string 必需
include_subdomains boolean
默认值 true
可选
include_expired boolean
默认值 false
可选
limit integer
默认值 100
可选
cursor string 可选

响应字段

字段 类型
has_more boolean
next_cursor string | null
cache_age_s integer
domain string
certificates[] object[]
certificates[] object
certificates[].id string
certificates[].issuer object
certificates[].common_name string
certificates[].san[] string[]
certificates[].not_before string
certificates[].not_after string
certificates[].is_expired boolean
certificates[].is_wildcard boolean
certificates[].fingerprint_sha256 string
summary object
summary.total_found integer
summary.returned integer
summary.unique_subdomains integer
summary.issuers[] string[]
summary.earliest_cert string | null
summary.latest_cert string | null
pagination object
pagination.limit integer
pagination.offset integer
pagination.returned integer
pagination.total integer
pagination.has_more boolean
pagination.next_cursor string | null
intelligence_summary object
intelligence_summary.data_source string
intelligence_summary.ct_log_sources[] string[]
intelligence_summary.source_count integer
intelligence_summary.cache_status string
intelligence_summary.returned_count integer
intelligence_summary.total_found integer
intelligence_summary.truncated boolean
intelligence_summary.limit integer
intelligence_summary.include_subdomains boolean
intelligence_summary.include_expired boolean
intelligence_summary.unique_name_count integer
intelligence_summary.unique_subdomains integer
intelligence_summary.issuer_count integer
intelligence_summary.wildcard_cert_count integer
intelligence_summary.active_cert_count integer
intelligence_summary.expired_cert_count integer
intelligence_summary.expiring_within_30_days_count integer
intelligence_summary.earliest_cert string | null
intelligence_summary.latest_cert string | null
intelligence_summary.latest_expiry string | null
intelligence_summary.has_more boolean
intelligence_summary.next_cursor string | null
intelligence_summary.warning_code string | null
meta object

请求示例

curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/certificates?domain=example.com&include_subdomains=true&include_expired=false&limit=25&cursor=example"
const response = await fetch("https://domscan.net/v1/certificates?domain=example.com&include_subdomains=true&include_expired=false&limit=25&cursor=example", {
  headers: { "X-API-Key": process.env.DOMSCAN_API_KEY },
});
const data = await response.json();
console.log(data);
import os
import requests

response = requests.get(
    "https://domscan.net/v1/certificates?domain=example.com&include_subdomains=true&include_expired=false&limit=25&cursor=example",
    headers={"X-API-Key": os.environ["DOMSCAN_API_KEY"]},
)
print(response.json())
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, err := http.NewRequest(http.MethodGet, "https://domscan.net/v1/certificates?domain=example.com&include_subdomains=true&include_expired=false&limit=25&cursor=example", nil)
	if err != nil {
		panic(err)
	}
	req.Header.Set("X-API-Key", os.Getenv("DOMSCAN_API_KEY"))

	resp, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer resp.Body.Close()

	data, err := io.ReadAll(resp.Body)
	if err != nil {
		panic(err)
	}
	fmt.Println(resp.Status, string(data))
}
require "json"
require "net/http"

uri = URI("https://domscan.net/v1/certificates?domain=example.com&include_subdomains=true&include_expired=false&limit=25&cursor=example")
request = Net::HTTP::Get.new(uri)
request["X-API-Key"] = ENV.fetch("DOMSCAN_API_KEY")

response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
  http.request(request)
end
puts JSON.pretty_generate(JSON.parse(response.body))

响应示例

{
  "domain": "example.com",
  "certificates": [
    {
      "id": "16234550871",
      "issuer": {
        "name": "R11",
        "organization": "Let's Encrypt"
      },
      "common_name": "www.example.com",
      "san": [
        "example.com",
        "www.example.com"
      ],
      "not_before": "2026-09-14T08:12:44",
      "not_after": "2026-12-13T08:12:43",
      "is_expired": false,
      "is_wildcard": false
    },
    {
      "id": "16198877412",
      "issuer": {
        "name": "R11",
        "organization": "Let's Encrypt"
      },
      "common_name": "api.example.com",
      "san": [
        "api.example.com"
      ],
      "not_before": "2026-08-20T14:03:10",
      "not_after": "2026-11-18T14:03:09",
      "is_expired": false,
      "is_wildcard": false
    }
  ],
  "summary": {
    "total_found": 14,
    "returned": 2,
    "unique_subdomains": 3,
    "issuers": [
      "Let's Encrypt"
    ],
    "earliest_cert": "2026-08-20T14:03:10",
    "latest_cert": "2026-09-14T08:12:44"
  },
  "pagination": {
    "limit": 2,
    "offset": 0,
    "returned": 2,
    "total": 14,
    "has_more": true,
    "next_cursor": "2"
  },
  "intelligence_summary": {
    "data_source": "crt.sh",
    "ct_log_sources": [
      "crt.sh"
    ],
    "source_count": 1,
    "cache_status": "live",
    "returned_count": 2,
    "total_found": 14,
    "truncated": true,
    "limit": 2,
    "include_subdomains": true,
    "include_expired": false,
    "unique_name_count": 3,
    "unique_subdomains": 3,
    "issuer_count": 1,
    "wildcard_cert_count": 0,
    "active_cert_count": 2,
    "expired_cert_count": 0,
    "expiring_within_30_days_count": 0,
    "earliest_cert": "2026-08-20T14:03:10",
    "latest_cert": "2026-09-14T08:12:44",
    "latest_expiry": "2026-12-13T08:12:43",
    "has_more": true,
    "next_cursor": "2",
    "warning_code": null
  },
  "meta": {
    "source": "crt.sh",
    "ct_log_sources": [
      "crt.sh"
    ],
    "query_time_ms": 1240,
    "cached": false,
    "page": {
      "limit": 2,
      "offset": 0,
      "returned": 2,
      "total": 14,
      "has_more": true,
      "next_cursor": "2"
    },
    "served_by": "pop=MAD country=ES"
  }
}

HTTP 状态码

  • 200 成功
  • 400 请求错误
  • 401 未授权
  • 402 需要付款
  • 429 请求过多
  • 503 服务不可用
  • 504 网关超时

常见问题

在哪里可以找到 SSL 证书 的请求和响应参考?

使用 SSL 证书 的 API 参考来查看参数、响应字段、示例、状态码和支持的操作模式。

应如何解读 SSL 证书 返回的未知或不完整结果?

未知或部分结果表示无法完全确定所请求的证据。在后续决策中保留结果状态、置信度、新鲜度和限制信息。

SSL 证书 如何计费?

费用取决于操作和执行模式。有关当前积分费用、身份验证要求和按项规则,请查看端点参考。

被这些公司的人员使用

InstantOutseerMongoDBRespondentSage Expense ManagementInstantlyD.R. HortonWhatConvertsAdobeLLM Pulse