Zum Hauptinhalt springen
Version: 1.0.0

Erste Schritte

Senden Sie Ihren ersten Schwachstellenscan in unter 5 Minuten. Diese Anleitung begleitet Sie beim Erhalten eines API-SchlĂĽssels, Einreichen eines Scans, PrĂĽfen des Status und Abrufen der Ergebnisse.

Voraussetzungen​

Stellen Sie vor dem Start sicher, dass Sie Folgendes haben:

  • âś… Ein aktives Cert-IX-Konto mit Zugang zur Scan-API
  • âś… Zugang zum Cert-IX-Dashboard fĂĽr die API-SchlĂĽsselverwaltung
  • âś… cURL oder einen beliebigen HTTP-Client (Python requests, Postman, etc.)

Schritt 1: API-Schlüssel erhalten​

  1. Melden Sie sich beim Cert-IX-Dashboard an
  2. Navigieren Sie zu Einstellungen → API-Schlüssel
  3. Klicken Sie auf API-SchlĂĽssel erstellen
  4. Konfigurieren Sie den SchlĂĽssel:
    • Name: Vergeben Sie einen beschreibenden Namen (z.B.: «Mein erster Scan-SchlĂĽssel»)
    • Bereiche: Wählen Sie mindestens scans:create, scans:read, results:read
    • Ablauf: Legen Sie einen angemessenen Ablauf fest (z.B.: 90 Tage)
  5. Klicken Sie auf Erstellen und kopieren Sie den SchlĂĽssel sofort
Wichtig

Der Klartext-API-Schlüssel wird nur einmal bei der Erstellung angezeigt. Speichern Sie ihn sicher in einem Passwort-Manager oder Secret-Tresor. Cert-IX kann ihn nachträglich nicht wiederherstellen.

Legen Sie den SchlĂĽssel als Umgebungsvariable fest:

export CERTIX_API_KEY="cix_sk_ihr_api_schluessel_hier"

Schritt 2: Ersten Scan einreichen​

Starten wir einen einfachen Nmap-Netzwerkscan auf ein Ziel:

curl -X POST https://api.cert-ix.com/scan-api/api/v1/scans \
-H "X-API-Key: $CERTIX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"target": "example.com",
"scanType": "nmap",
"name": "Mein erster Scan",
"options": {
"ports": "1-1024",
"timing": "T3",
"serviceDetection": true
}
}'

Antwort:

{
"success": true,
"data": {
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"scanType": "nmap",
"name": "Mein erster Scan",
"target": "example.com",
"status": "queued",
"priority": "normal",
"progress": 0,
"createdAt": "2026-03-06T10:00:00Z"
}
}
Scan-ID speichern

Kopieren Sie die id aus der Antwort — Sie benötigen sie, um den Status zu prüfen und die Ergebnisse abzurufen.

export SCAN_ID="a1b2c3d4-e5f6-7890-abcd-ef1234567890"

Schritt 3: Scan-Status prüfen​

Scans werden asynchron ausgefĂĽhrt. Fragen Sie den Status-Endpunkt ab, um den Fortschritt zu verfolgen:

curl -X GET "https://api.cert-ix.com/scan-api/api/v1/scans/$SCAN_ID?scanType=nmap" \
-H "X-API-Key: $CERTIX_API_KEY"

Antwort (in Bearbeitung):

{
"success": true,
"data": {
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"status": "running",
"progress": 67
}
}

Antwort (abgeschlossen):

{
"success": true,
"data": {
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"status": "completed",
"progress": 100,
"resultCount": 12,
"durationMs": 135000
}
}

Statuswerte​

StatusBedeutung
queuedAkzeptiert, wartet auf Scanner-Kapazität
runningScanner fĂĽhrt den Scan aktiv aus
completedErfolgreich abgeschlossen — Ergebnisse verfügbar
failedSchwerwiegender Fehler aufgetreten
cancelledVom Benutzer abgebrochen

Schritt 4: Ergebnisse abrufen​

Sobald der Status completed ist, rufen Sie die vollständigen Ergebnisse ab:

curl -X GET "https://api.cert-ix.com/scan-api/api/v1/scans/$SCAN_ID/results?scanType=nmap" \
-H "X-API-Key: $CERTIX_API_KEY"

Antwort:

{
"success": true,
"data": {
"scanId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"scanType": "nmap",
"target": "example.com",
"status": "completed",
"results": {
"hosts": [
{
"ip": "93.184.216.34",
"hostname": "example.com",
"state": "up",
"ports": [
{ "port": 80, "protocol": "tcp", "state": "open", "service": "http", "version": "nginx 1.25.4" },
{ "port": 443, "protocol": "tcp", "state": "open", "service": "https", "version": "nginx 1.25.4" }
]
}
],
"stats": { "hostsUp": 1, "openPorts": 2, "closedPorts": 1022 }
}
}
}

Vollständiges Skript​

Vollständiges Bash-Skript, das den gesamten Workflow automatisiert:

#!/bin/bash
# Cert-IX Scan-API — Vollständiger Scan-Workflow
set -euo pipefail

API_KEY="${CERTIX_API_KEY:?Setzen Sie die Umgebungsvariable CERTIX_API_KEY}"
BASE_URL="https://api.cert-ix.com/scan-api/api/v1"
TARGET="${1:-example.com}"

echo "🔍 Sende Nmap-Scan für: $TARGET"

RESPONSE=$(curl -s -X POST "$BASE_URL/scans" \
-H "X-API-Key: $API_KEY" \
-H "Content-Type: application/json" \
-d "{
\"target\": \"$TARGET\",
\"scanType\": \"nmap\",
\"name\": \"Schnellscan - $TARGET\",
\"options\": { \"ports\": \"1-1024\", \"timing\": \"T3\", \"serviceDetection\": true }
}")

SCAN_ID=$(echo "$RESPONSE" | jq -r '.data.id')
echo "âś… Scan eingereicht: $SCAN_ID"

echo "⏳ Warte auf Scan-Abschluss..."
while true; do
STATUS_RESP=$(curl -s -X GET "$BASE_URL/scans/$SCAN_ID?scanType=nmap" -H "X-API-Key: $API_KEY")
STATUS=$(echo "$STATUS_RESP" | jq -r '.data.status')
PROGRESS=$(echo "$STATUS_RESP" | jq -r '.data.progress')
echo " Status: $STATUS ($PROGRESS%)"
case "$STATUS" in
completed) break ;;
failed) echo "❌ Scan fehlgeschlagen"; exit 1 ;;
cancelled) echo "⚠️ Scan abgebrochen"; exit 1 ;;
esac
sleep 5
done

echo "📊 Ergebnisse abrufen..."
curl -s -X GET "$BASE_URL/scans/$SCAN_ID/results?scanType=nmap" -H "X-API-Key: $API_KEY" | jq .
echo "✨ Abgeschlossen!"

Was kommt als Nächstes?​

Profi-Tipp

Verwenden Sie fĂĽr Produktionsintegrationen Webhooks statt Polling. Webhooks liefern sofortige Benachrichtigungen und verbrauchen kein API-Kontingent fĂĽr StatusprĂĽfungen.