Junior — Middle
Ինչպե՞ս կարող ենք հաստատել թվային վկայականի օրինականությունը։
sobes.tech AI
Պատասխան AI-ից
Go-ում թվային սերտիֆիկատի օրինականությունը հաստատելու համար սովորաբար կատարվում են հետևյալ քայլերը՝
- Սերտիֆիկատի ստորագրության ստուգում — համոզվեք, որ սերտիֆիկատը ստորագրված է վստահելի սերտիֆիկատային կենտրոնի (CA) կողմից:
- Սերտիֆիկատների շղթայի (շղթայի վավերացում) — համոզվեք, որ սերտիֆիկատից մինչև արմատ CA-ն շղթան ճիշտ և վստահելի է:
- Ամենամատչելիության ստուգում — սերտիֆիկատը պետք է լինի գործող (չի սպառվել):
- Սերտիֆիկատի չեղարկման ստուգում — CRL կամ OCSP-ի միջոցով:
Go-ում դրա համար օգտագործվում է crypto/x509 փաթեթը։ Սերտիֆիկատի ստուգման օրինակ:
import (
"crypto/x509"
"encoding/pem"
"io/ioutil"
"log"
)
func verifyCert(certPEM []byte, roots *x509.CertPool) error {
բլոկ, _ := pem.Decode(certPEM)
if բլոկ == nil {
return fmt.Errorf("վատ է PEM սերտիֆիկատի վերլուծությունը")
}
cert, err := x509.ParseCertificate(бլոկ.Bytes)
if err != nil {
return err
}
opts := x509.VerifyOptions{
Roots: roots,
}
_, err = cert.Verify(opts)
return err
}
Այստեղ, roots վստահելի արմատային սերտիֆիկատների հավաքածու է։ Եթե cert.Verify սխալ չվերադարձնի, սերտիֆիկատը համարվում է օրինական։