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:
- 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á.
- 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ó.
- Az érvényességi idő ellenőrzése — a tanúsítványnak érvényesnek kell lennie (nem járt le).
- 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.