Sobes.tech
Junior — Middle

Wie kann die Legitimität eines digitalen Zertifikats bestätigt werden?

sobes.tech KI

Antwort von AI

Um die Legitimität eines digitalen Zertifikats in Go zu bestätigen, werden normalerweise die folgenden Schritte durchgeführt:

  1. Signaturprüfung des Zertifikats — sicherstellen, dass das Zertifikat von einer vertrauenswürdigen Zertifizierungsstelle (CA) signiert wurde.
  2. Zertifikatskettenprüfung (Chain Validation) — sicherstellen, dass die Kette vom Zertifikat bis zur Root-CA korrekt und vertrauenswürdig ist.
  3. Gültigkeitsprüfung — das Zertifikat muss gültig sein (nicht abgelaufen).
  4. Zertifikatswiderrufprüfung — mittels CRL oder OCSP.

In Go wird dafür das Paket crypto/x509 verwendet. Beispiel für die Zertifikatsprüfung:

import (
    "crypto/x509"
    "encoding/pem"
    "io/ioutil"
    "log"
)

func verifyCert(certPEM []byte, roots *x509.CertPool) error {
    block, _ := pem.Decode(certPEM)
    if block == nil {
        return fmt.Errorf("Fehler beim Parsen des Zertifikat-PEM")
    }
    cert, err := x509.ParseCertificate(block.Bytes)
    if err != nil {
        return err
    }

    opts := x509.VerifyOptions{
        Roots: roots,
    }

    _, err = cert.Verify(opts)
    return err
}

Hierbei ist roots eine Sammlung vertrauenswürdiger Root-Zertifikate. Wenn cert.Verify keinen Fehler zurückgibt, gilt das Zertifikat als legitim.