GET SSL-Zertifikatsdetails lesen
/api/v1/monitors/{id}/tls
Lesen Sie begrenzte, standortgebundene Zertifikatsnachweise. Automatische Zertifikatsdiagnosen und Resttagemessungen erfolgen stündlich, Domaindiagnosen täglich. Nachprüfungen erfordern Bearbeitungsrechte, ein gespeichertes Ziel, die aktuelle Konfigurationsrevision und eine Vorgangskennung. Sie nutzen Prüfkontingente, ohne reguläre HTTP-Messungen oder Alarmbestätigungen zu ändern. Unbekannte oder veraltete Nachweise bestätigen keine Gültigkeit.
Auf dieser Seite
Zugriff und Rechte
Lesen Sie begrenzte, standortgebundene Zertifikatsnachweise. Automatische Zertifikatsdiagnosen und Resttagemessungen erfolgen stündlich, Domaindiagnosen täglich. Nachprüfungen erfordern Bearbeitungsrechte, ein gespeichertes Ziel, die aktuelle Konfigurationsrevision und eine Vorgangskennung. Sie nutzen Prüfkontingente, ohne reguläre HTTP-Messungen oder Alarmbestätigungen zu ändern. Unbekannte oder veraltete Nachweise bestätigen keine Gültigkeit.
Browsersitzung: Cookie __Host-mb_session.
Maschinen-Verwaltungszugang in Authorization: Bearer. Beachten Sie die von der Operation benötigten Berechtigungen (Scopes).
Parameter und Header
| Feld | Position | Typ und Grenzen | Erforderlich | Bedeutung |
|---|---|---|---|---|
| id | Pfad | string; {"format":"uuid"} | Ja | Ressourcen-ID in diesem Arbeitsbereich |
| location_id | URL-Parameter | string; {"format":"uuid"} | Nein | Einen konfigurierten Standort für dessen Zertifikat wählen. Ohne Parameter wird das Zertifikat mit der kürzesten Restlaufzeit gelesen. Die Zusammenfassung berücksichtigt stets alle konfigurierten Standorte. |
Anfragekörper
Kein Anfragekörper.
Antworten
| Stabile Fehlercodes |
|---|
| invalid_session |
application/problem+json
| Feld | Typ und Grenzen | Erforderlich | Bedeutung |
|---|---|---|---|
| $ | Problem | Ja | — |
| $.code | string | Ja | Stabiler maschinenlesbarer Fehlercode |
| $.detail | string | Ja | Kurze lokalisierte Erklärung ohne interne Fehlerdaten |
| $.instance | string | Ja | Einmalige relative Kennung /api/v1/requests/{request_id}; keine abrufbare Ressource |
| $.message | string | Ja | Vorübergehend für bestehende Clients gleich detail |
| $.message_key | string | Ja | Stabiler Übersetzungsschlüssel für einen Sprachwechsel der Anzeige ohne neue Anfrage |
| $.message_params | object; {"additionalProperties":true} | Ja | Benannte, sicher ausgegebene Meldungsparameter; kein beliebiges HTML |
| $.request_id | string; {"pattern":"^[0-9a-f]{32}$"} | Ja | Vom Server erzeugte Diagnosekennung. Enthält kein Logintoken und keine Zugangsdaten. |
| $.status | integer; {"maximum":599,"minimum":400} | Ja | — |
| $.title | string | Ja | Lokalisierte HTTP-Statusbezeichnung |
| $.type | string; {"const":"about:blank"} | Ja | — |
| Stabile Fehlercodes |
|---|
| csrf |
| forbidden |
| insufficient_scope |
application/problem+json
| Feld | Typ und Grenzen | Erforderlich | Bedeutung |
|---|---|---|---|
| $ | Problem | Ja | — |
| $.code | string | Ja | Stabiler maschinenlesbarer Fehlercode |
| $.detail | string | Ja | Kurze lokalisierte Erklärung ohne interne Fehlerdaten |
| $.instance | string | Ja | Einmalige relative Kennung /api/v1/requests/{request_id}; keine abrufbare Ressource |
| $.message | string | Ja | Vorübergehend für bestehende Clients gleich detail |
| $.message_key | string | Ja | Stabiler Übersetzungsschlüssel für einen Sprachwechsel der Anzeige ohne neue Anfrage |
| $.message_params | object; {"additionalProperties":true} | Ja | Benannte, sicher ausgegebene Meldungsparameter; kein beliebiges HTML |
| $.request_id | string; {"pattern":"^[0-9a-f]{32}$"} | Ja | Vom Server erzeugte Diagnosekennung. Enthält kein Logintoken und keine Zugangsdaten. |
| $.status | integer; {"maximum":599,"minimum":400} | Ja | — |
| $.title | string | Ja | Lokalisierte HTTP-Statusbezeichnung |
| $.type | string; {"const":"about:blank"} | Ja | — |
| Stabile Fehlercodes |
|---|
| not_found |
application/problem+json
| Feld | Typ und Grenzen | Erforderlich | Bedeutung |
|---|---|---|---|
| $ | Problem | Ja | — |
| $.code | string | Ja | Stabiler maschinenlesbarer Fehlercode |
| $.detail | string | Ja | Kurze lokalisierte Erklärung ohne interne Fehlerdaten |
| $.instance | string | Ja | Einmalige relative Kennung /api/v1/requests/{request_id}; keine abrufbare Ressource |
| $.message | string | Ja | Vorübergehend für bestehende Clients gleich detail |
| $.message_key | string | Ja | Stabiler Übersetzungsschlüssel für einen Sprachwechsel der Anzeige ohne neue Anfrage |
| $.message_params | object; {"additionalProperties":true} | Ja | Benannte, sicher ausgegebene Meldungsparameter; kein beliebiges HTML |
| $.request_id | string; {"pattern":"^[0-9a-f]{32}$"} | Ja | Vom Server erzeugte Diagnosekennung. Enthält kein Logintoken und keine Zugangsdaten. |
| $.status | integer; {"maximum":599,"minimum":400} | Ja | — |
| $.title | string | Ja | Lokalisierte HTTP-Statusbezeichnung |
| $.type | string; {"const":"about:blank"} | Ja | — |
| Stabile Fehlercodes |
|---|
| invalid_monitor |
application/problem+json
| Feld | Typ und Grenzen | Erforderlich | Bedeutung |
|---|---|---|---|
| $ | Problem | Ja | — |
| $.code | string | Ja | Stabiler maschinenlesbarer Fehlercode |
| $.detail | string | Ja | Kurze lokalisierte Erklärung ohne interne Fehlerdaten |
| $.instance | string | Ja | Einmalige relative Kennung /api/v1/requests/{request_id}; keine abrufbare Ressource |
| $.message | string | Ja | Vorübergehend für bestehende Clients gleich detail |
| $.message_key | string | Ja | Stabiler Übersetzungsschlüssel für einen Sprachwechsel der Anzeige ohne neue Anfrage |
| $.message_params | object; {"additionalProperties":true} | Ja | Benannte, sicher ausgegebene Meldungsparameter; kein beliebiges HTML |
| $.request_id | string; {"pattern":"^[0-9a-f]{32}$"} | Ja | Vom Server erzeugte Diagnosekennung. Enthält kein Logintoken und keine Zugangsdaten. |
| $.status | integer; {"maximum":599,"minimum":400} | Ja | — |
| $.title | string | Ja | Lokalisierte HTTP-Statusbezeichnung |
| $.type | string; {"const":"about:blank"} | Ja | — |
| Stabile Fehlercodes |
|---|
| query_limit |
application/problem+json
| Feld | Typ und Grenzen | Erforderlich | Bedeutung |
|---|---|---|---|
| $ | Problem | Ja | — |
| $.code | string | Ja | Stabiler maschinenlesbarer Fehlercode |
| $.detail | string | Ja | Kurze lokalisierte Erklärung ohne interne Fehlerdaten |
| $.instance | string | Ja | Einmalige relative Kennung /api/v1/requests/{request_id}; keine abrufbare Ressource |
| $.message | string | Ja | Vorübergehend für bestehende Clients gleich detail |
| $.message_key | string | Ja | Stabiler Übersetzungsschlüssel für einen Sprachwechsel der Anzeige ohne neue Anfrage |
| $.message_params | object; {"additionalProperties":true} | Ja | Benannte, sicher ausgegebene Meldungsparameter; kein beliebiges HTML |
| $.request_id | string; {"pattern":"^[0-9a-f]{32}$"} | Ja | Vom Server erzeugte Diagnosekennung. Enthält kein Logintoken und keine Zugangsdaten. |
| $.status | integer; {"maximum":599,"minimum":400} | Ja | — |
| $.title | string | Ja | Lokalisierte HTTP-Statusbezeichnung |
| $.type | string; {"const":"about:blank"} | Ja | — |
| Stabile Fehlercodes |
|---|
| unavailable |
application/problem+json
| Feld | Typ und Grenzen | Erforderlich | Bedeutung |
|---|---|---|---|
| $ | Problem | Ja | — |
| $.code | string | Ja | Stabiler maschinenlesbarer Fehlercode |
| $.detail | string | Ja | Kurze lokalisierte Erklärung ohne interne Fehlerdaten |
| $.instance | string | Ja | Einmalige relative Kennung /api/v1/requests/{request_id}; keine abrufbare Ressource |
| $.message | string | Ja | Vorübergehend für bestehende Clients gleich detail |
| $.message_key | string | Ja | Stabiler Übersetzungsschlüssel für einen Sprachwechsel der Anzeige ohne neue Anfrage |
| $.message_params | object; {"additionalProperties":true} | Ja | Benannte, sicher ausgegebene Meldungsparameter; kein beliebiges HTML |
| $.request_id | string; {"pattern":"^[0-9a-f]{32}$"} | Ja | Vom Server erzeugte Diagnosekennung. Enthält kein Logintoken und keine Zugangsdaten. |
| $.status | integer; {"maximum":599,"minimum":400} | Ja | — |
| $.title | string | Ja | Lokalisierte HTTP-Statusbezeichnung |
| $.type | string; {"const":"about:blank"} | Ja | — |
application/json
| Feld | Typ und Grenzen | Erforderlich | Bedeutung |
|---|---|---|---|
| $ | MonitorTLS | Ja | — |
| $.monitor_id | string; {"format":"uuid"} | Ja | — |
| $.config_revision | integer | Ja | — |
| $.paused | boolean | Ja | — |
| $.url | string | Ja | — |
| $.certificates | array<MonitorTLSEvidence>; {"maxItems":1} | Ja | — |
| $.certificates[] | MonitorTLSEvidence | Ja | — |
| $.certificates[].location_id | string; {"format":"uuid"} | Ja | — |
| $.certificates[].location_name | string | Ja | — |
| $.certificates[].certificate | TLSSnapshot | Ja | — |
| $.certificates[].certificate.host | string; {"maxLength":253} | Ja | — |
| $.certificates[].certificate.tls_version | string | Ja | — |
| $.certificates[].certificate.chain | array<TLSCertificate>; {"minItems":1,"maxItems":16} | Ja | — |
| $.certificates[].certificate.chain[] | TLSCertificate | Ja | — |
| $.certificates[].certificate.chain[].sha256 | string; {"pattern":"^[a-f0-9]{64}$"} | Ja | — |
| $.certificates[].certificate.chain[].common_name | string; {"maxLength":256} | Ja | — |
| $.certificates[].certificate.chain[].issuer | string; {"maxLength":256} | Ja | — |
| $.certificates[].certificate.chain[].serial | string; {"maxLength":128} | Ja | — |
| $.certificates[].certificate.chain[].not_before | string; {"format":"date-time"} | Ja | — |
| $.certificates[].certificate.chain[].not_after | string; {"format":"date-time"} | Ja | — |
| $.certificates[].certificate.chain[].names | array<string; {"maxLength":253}>; {"maxItems":128} | Ja | — |
| $.certificates[].certificate.chain[].names[] | string; {"maxLength":253} | Ja | — |
| $.certificates[].certificate.chain[].is_ca | boolean | Ja | — |
| $.certificates[].certificate.chain[].sent | boolean | Ja | — |
| $.certificates[].certificate.chain[].signature | string | Ja | — |
| $.certificates[].certificate.chain[].key | string | Ja | — |
| $.certificates[].certificate.checks | array<object; {"additionalProperties":false}>; {"minItems":7,"maxItems":7} | Ja | — |
| $.certificates[].certificate.checks[] | object; {"additionalProperties":false} | Ja | — |
| $.certificates[].certificate.checks[].key | string; {"enum":["validity","hostname","authority","chain","revocation","tls","strength"]} | Ja | — |
| $.certificates[].certificate.checks[].status | string; {"enum":["passed","failed","unknown"]} | Ja | — |
| $.certificates[].certificate.checks[].reason | string; {"maxLength":64} | Ja | — |
| $.certificates[].certificate.revocation_valid_until | string; {"format":"date-time"} | Nein | — |
| $.certificates[].certificate.truncated | boolean | Nein | — |
| $.certificates[].certificate.port | integer; {"minimum":1,"maximum":65535} | Nein | — |
| $.certificates[].first_seen_at | string; {"format":"date-time"} | Ja | — |
| $.certificates[].observed_at | string; {"format":"date-time"} | Ja | — |
| $.certificates[].diagnosed_at | string; {"format":"date-time"} | null | Ja | — |
| $.certificates[].diagnosed_at (anyOf 1) | string; {"format":"date-time"} | Nein | — |
| $.certificates[].diagnosed_at (anyOf 2) | null | Nein | — |
| $.certificates[].config_revision | integer | Ja | — |
| $.locations | array<object; {"additionalProperties":false}> | Ja | — |
| $.locations[] | object; {"additionalProperties":false} | Ja | — |
| $.locations[].id | string; {"format":"uuid"} | Ja | — |
| $.locations[].name | string | Ja | — |
| $.domain | object; {"additionalProperties":true} | null | Ja | — |
| $.domain (anyOf 1) | object; {"additionalProperties":true} | Nein | — |
| $.domain (anyOf 2) | null | Nein | — |
| $.domain_observed_at | string; {"format":"date-time"} | null | Ja | — |
| $.domain_observed_at (anyOf 1) | string; {"format":"date-time"} | Nein | — |
| $.domain_observed_at (anyOf 2) | null | Nein | — |
| $.alerting | object; {"additionalProperties":true} | null | Ja | — |
| $.alerting (anyOf 1) | object; {"additionalProperties":true} | Nein | — |
| $.alerting (anyOf 2) | null | Nein | — |
| $.alerting_revision | integer | Ja | — |
| $.diagnostic_interval_seconds | integer | Ja | — |
| $.summary | object; {"additionalProperties":false} | Ja | — |
| $.summary.not_after | string; {"format":"date-time"} | null | Ja | — |
| $.summary.not_after (anyOf 1) | string; {"format":"date-time"} | Nein | — |
| $.summary.not_after (anyOf 2) | null | Nein | — |
| $.summary.not_before | string; {"format":"date-time"} | null | Ja | — |
| $.summary.not_before (anyOf 1) | string; {"format":"date-time"} | Nein | — |
| $.summary.not_before (anyOf 2) | null | Nein | — |
| $.summary.observed_at | string; {"format":"date-time"} | null | Ja | — |
| $.summary.observed_at (anyOf 1) | string; {"format":"date-time"} | Nein | — |
| $.summary.observed_at (anyOf 2) | null | Nein | — |
| $.summary.failed | boolean | Ja | — |
| $.summary.stale | boolean | Nein | — |
| $.diagnostic | object | null | Nein | — |
| $.diagnostic.status | string | Ja | — |
| $.diagnostic.code | string | Ja | — |
| $.diagnostic.observed_at | string; {"format":"date-time"} | Ja | — |
| $.domain_diagnostic | object | null | Nein | — |
| $.domain_diagnostic.status | string | Ja | — |
| $.domain_diagnostic.code | string | Ja | — |
| $.domain_diagnostic.observed_at | string; {"format":"date-time"} | Ja | — |
Wiederholungen und asynchrone Aufträge
Diese Operation liest oder prüft, ohne eine Ressourcenänderung anzuwenden. Beachten Sie Ratenlimits und Zugangslaufzeiten.
Anfragebeispiele
Ersetzen Sie Demokennungen, Zeitstempel und Platzhalter durch eigene Werte. Behalten Sie bei Wiederholungen Kennungen, Zeit und Inhalt bei. Diese Beispiele führen auf der Seite keine Anfragen aus.
Halten Sie Anmeldelinks, Codes, Cookies und Schlüssel privat. Schreiben Sie sie nicht in Logs und teilen Sie sie nicht in Hilfeanfragen.
curl --silent --show-error --output /dev/null --write-out "%{http_code}\n" --request GET --header @"$HOME/.config/metribeacon/headers.txt" "https://metribeacon.com/api/v1/monitors/00000000-0000-4000-8000-000000000001/tls"
import http.client, json
from pathlib import Path
headers = json.loads((Path.home() / ".config/metribeacon/headers.json").read_text())
headers["Content-Type"] = "application/json"
connection = http.client.HTTPSConnection("metribeacon.com", timeout=10)
connection.request('GET', '/api/v1/monitors/00000000-0000-4000-8000-000000000001/tls', body=None, headers=headers)
response = connection.getresponse()
print(response.status)
connection.close()
import { readFile } from "node:fs/promises";
import { homedir } from "node:os";
import { join } from "node:path";
const headers = JSON.parse(await readFile(join(homedir(), ".config/metribeacon/headers.json"), "utf8"));
headers["Content-Type"] = "application/json";
const response = await fetch("https://metribeacon.com/api/v1/monitors/00000000-0000-4000-8000-000000000001/tls", {method: "GET", headers, redirect: "error", signal: AbortSignal.timeout(10000)});
console.log(response.status);
await response.body?.cancel();
package main
import ("fmt"; "net/http"; "time"; "encoding/json"; "os"; "path/filepath")
func main() {
home, err := os.UserHomeDir(); if err != nil { panic("credentials unavailable") }
raw, err := os.ReadFile(filepath.Join(home, ".config/metribeacon/headers.json")); if err != nil { panic("credentials unavailable") }
var headers map[string]string
if json.Unmarshal(raw, &headers) != nil { panic("invalid local headers") }
request, err := http.NewRequest("GET", "https://metribeacon.com/api/v1/monitors/00000000-0000-4000-8000-000000000001/tls", nil); if err != nil { panic("request invalid") }
for name, value := range headers { request.Header.Set(name, value) }
request.Header.Set("Content-Type", "application/json")
client := &http.Client{Timeout: 10*time.Second, CheckRedirect: func(*http.Request, []*http.Request) error { return http.ErrUseLastResponse }}
response, err := client.Do(request); if err != nil { panic("request failed") }
defer response.Body.Close()
fmt.Println(response.StatusCode)
}
Verwandte Anleitungen
- HTTP-API, OAuth und MCP
Finden Sie die Nutzer-API-Endpunkte mit Rechten, Feldern, Beispielen und Antwortformaten.
- POST SSL-Zertifikat erneut prüfen
Starten Sie eine revisionsgebundene reine TLS-Zertifikatsdiagnose an einem gespeicherten Monitorstandort. Erfordert Schreibrechte und freie Prüferkapazität; die HTTP-Anfrage wird nicht wiederholt und reguläre Telemetrie bleibt unverändert. Verwenden Sie bei Wiederholung dieselbe Vorgangs-ID.
- GET Status einer Zertifikatsneuprüfung lesen
Lesen Sie Status und Abschlusszeit Ihrer Zertifikatsneuprüfung für diesen Monitor. Eine abgeschlossene Diagnose bestätigt keine Verfügbarkeit; aktuelle Zertifikatsnachweise liefert die TLS-Ansicht.
- GET Gesamtverfügbarkeitsquelle des Monitors lesen
HTTP- sowie TCP-, UDP-, DNS-, TLS-, Ping-, Dienst-, Domain- und Browsermonitore verwenden eine Gesamtverfügbarkeitsreihe je Monitor. Bei mehreren Prüfstandorten folgt diese der eingestellten Bestätigung und Standortregel (ein Standort, alle oder Quorum). Zeiten einzelner Standorte oder Engines werden nicht addiert. Der Katalog enthält aktive Monitore mit aktivierter Verfügbarkeitserfassung; die einzelne Quelle macht auch erhaltene Historie bei deaktivierter Erfassung zugänglich. Unbekannte, pausierte und unbeobachtete Zeit zählen niemals als bestätigte Verfügbarkeit. SLOs und Berichte verwenden dieselbe Quelle und behalten ihre getrennte Wartungsberechnung.