Sobes.tech
Junior — Middle

Hogyan lehet megerősíteni egy digitális tanúsítvány hitelességét?

sobes.tech MI

Válasz az MI-től

A digitális tanúsítvány hitelességének megerősítéséhez Go-ban általában a következő lépéseket hajtják végre:

  1. A tanúsítvány aláírásának ellenőrzése — győződjön meg arról, hogy a tanúsítványt egy megbízható tanúsítványkiadó (CA) írta alá.
  2. A tanúsítványlánc ellenőrzése (lánc validálás) — győződjön meg arról, hogy a tanúsítványtól a gyökér CA-ig tartó lánc helyes és megbízható.
  3. Az érvényességi idő ellenőrzése — a tanúsítványnak érvényesnek kell lennie (nem járt le).
  4. A tanúsítvány visszavonásának ellenőrzése — CRL vagy OCSP segítségével.

Ehhez a crypto/x509 csomagot használják. Példa a tanúsítvány ellenőrzésére:

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("hiba a tanúsítvány PEM elemének elemzésében")
    }
    cert, err := x509.ParseCertificate(block.Bytes)
    if err != nil {
        return err
    }

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

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

Itt a roots egy megbízható gyökértanúsítványokból álló halmaz. Ha a cert.Verify nem ad hibát, a tanúsítványt legitimsnek tekintik.