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:
- Kontrola podpisu certifikátu — uistite sa, že certifikát je podpísaný dôveryhodnou certifikačnou autoritou (CA).
- 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ý.
- Kontrola platnosti — certifikát musí byť platný (nevypršal).
- 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.