Sobes.tech
Junior — Middle

Jak lze potvrdit legitimitu digitálního certifikátu?

sobes.tech AI

Odpověď od AI

Pro potvrzení legitimity digitálního certifikátu v Go se obvykle provádí následující kroky:

  1. Ověření podpisu certifikátu — ujistěte se, že certifikát je podepsán důvěryhodným certifikačním úřadem (CA).
  2. Ověření řetězce certifikátů (validace řetězce) — ujistěte se, že řetězec od certifikátu po kořenový CA je správný a důvěryhodný.
  3. Ověření platnosti — certifikát musí být platný (nevypršel).
  4. Ověření odvolání certifikátu — pomocí CRL nebo OCSP.

V Go se k tomu používá balíček crypto/x509. Příklad ověření certifikátu:

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("selhání při parsování PEM certifikátu")
    }
    cert, err := x509.ParseCertificate(block.Bytes)
    if err != nil {
        return err
    }

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

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

Zde je roots sada důvěryhodných kořenových certifikátů. Pokud cert.Verify nevrátí chybu, certifikát je považován za legitimní.