Récupérer le DN complet du sujet ou de l'émetteur à partir du certificat X509 dans Go
Récupérer le nom distinctif (DN) complet du sujet ou de l'émetteur à partir d'un certificat X509 en tant que chaîne peut être réalisé en quelques étapes.
Détails de la solution :
Mapper les OID aux noms d'attribut :
Convertir RDNSequence en chaîne :
Construire la chaîne DN du sujet :
Appelez la fonction :
Exemple d'utilisation :
<code class="go">func main() { // Obtain the X509 certificate x509Cert, err := LoadCert(pemBytes) if err != nil { // Handle error } // Retrieve subject DN subj, err := getDNFromCert(x509Cert.Subject, "/") if err != nil { // Handle error } fmt.Println("Subject DN:", subj) }</code>
Définition de la fonction :
<code class="go">func getDNFromCert(namespace pkix.Name, sep string) (string, error) { subject := []string{} for _, s := range namespace.ToRDNSequence() { for _, i := range s { if v, ok := i.Value.(string); ok { subject = append(subject, fmt.Sprintf("%v=%v", i.Type.String(), v)) } else { subject = append(subject, fmt.Sprintf("%v=%v", i.Type.String(), i.Value)) } } } return sep + strings.Join(subject, sep), nil }</code>
Sortie attendue :
Subject DN: /C=US/O=some organization/OU=unit/CN=common name
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!