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:
- Ověření podpisu certifikátu — ujistěte se, že certifikát je podepsán důvěryhodným certifikačním úřadem (CA).
- 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ý.
- Ověření platnosti — certifikát musí být platný (nevypršel).
- 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í.