Sobes.tech
Junior — Middle

Ako potvrdiť platnosť digitálneho certifikátu?

sobes.tech AI

Odpoveď od AI

Na potvrdenie legitímnosti digitálneho certifikátu v Go sa zvyčajne vykonávajú nasledovné kroky:

  1. Kontrola podpisu certifikátu — uistite sa, že certifikát je podpísaný dôveryhodnou certifikačnou autoritou (CA).
  2. Kontrola reťazca certifikátov (validácia reťazca) — uistite sa, že reťazec od certifikátu po koreňový CA je správny a dôveryhodný.
  3. Kontrola platnosti — certifikát musí byť platný (nevypršal).
  4. Kontrola odvolania certifikátu — pomocou CRL alebo OCSP.

V Go na to sa používa balík crypto/x509. Príklad kontroly certifikátu:

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

func verifyCert(certPEM []byte, roots *x509.CertPool) error {
    blok, _ := pem.Decode(certPEM)
    if blok == nil {
        return fmt.Errorf("chyba pri parsovaní PEM certifikátu")
    }
    cert, err := x509.ParseCertificate(блок.Bytes)
    if err != nil {
        return err
    }

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

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

Tu je roots súbor dôveryhodných koreňových certifikátov. Ak cert.Verify nevráti chybu, certifikát sa považuje za legitímny.