Junior — Middle
Rəqəmsal sertifikatın qanuniliyini necə təsdiqləmək olar?
sobes.tech Süni İntellekt
AI-dan cavab
Go-da rəqəmsal sertifikatın qanuni olduğunu təsdiqləmək üçün adətən aşağıdakı addımlar həyata keçirilir:
- Sertifikatın imzasını yoxlamaq — sertifikatın etibarlı sertifikatlaşdırma mərkəzi (CA) tərəfindən imzalandığından əmin olun.
- Sertifikat zənciri yoxlaması (zəncir doğrulaması) — sertifikatdan kök CA-ya qədər olan zəncirin düzgün və etibarlı olduğunu təmin edin.
- Müddətinin keçməməsini yoxlamaq — sertifikat qüvvədə olmalıdır (müddəti bitməməlidir).
- Sertifikatın ləğv olunmasını yoxlamaq — CRL və ya OCSP vasitəsilə.
Go-da bunun üçün crypto/x509 paketi istifadə olunur. Sertifikatın yoxlanması nümunəsi:
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("sertifikat PEM-inin təhlilində xəta")
}
cert, err := x509.ParseCertificate(block.Bytes)
if err != nil {
return err
}
opts := x509.VerifyOptions{
Roots: roots,
}
_, err = cert.Verify(opts)
return err
}
Burada, roots etibarlı kök sertifikatların toplusudur. Əgər cert.Verify xəta verməzsə, sertifikat qanuni sayılır.