Maison >développement back-end >Golang >Comment configurer correctement les connexions TLS à l'aide de certificats auto-signés ?

Comment configurer correctement les connexions TLS à l'aide de certificats auto-signés ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-15 19:43:10513parcourir

How to Properly Configure TLS Connections Using Self-Signed Certificates?

Établissement de connexions TLS avec des certificats auto-signés

Lors de l'établissement de connexions TLS à l'aide de certificats auto-signés, il est crucial de configurer correctement le client et côté serveur pour éviter les erreurs liées aux certificats.

Client Considérations

Le code client doit ajouter le certificat de serveur auto-signé à son pool d'autorité de certification. Ce pool contient des certificats approuvés par le client. En ajoutant le certificat du serveur au pool, le client lui fait effectivement confiance.

Cela peut être réalisé en utilisant la structure tls.Config, comme indiqué dans l'extrait de code fourni :

CA_Pool := x509.NewCertPool()
serverCert, err := ioutil.ReadFile("./cert.pem")
if err != nil {
    log.Fatal("Could not load server certificate!")
}
CA_Pool.AppendCertsFromPEM(severCert)

config := tls.Config{RootCAs: CA_Pool}

Considérations sur le serveur

Pour les certificats auto-signés, le serveur doit avoir le même certificat ajouté en tant que sa propre autorité de certification racine. Cela garantit que le serveur est autorisé à se délivrer des certificats.

Pour y parvenir, utilisez l'extrait de code suivant :

cert, err := tls.LoadX509KeyPair("./cert.pem", "./key.pem")
config := tls.Config{Certificates: []tls.Certificate{cert}}

Erreur courante

Une erreur courante lors de la génération de certificats auto-signés est de ne pas définir l'indicateur IsCA. Cet indicateur indique que le certificat peut être utilisé comme autorité de certification. Sans cet indicateur, le certificat peut ne pas vérifier sa propre signature.

Le code correct doit inclure les éléments suivants :

x509.CreateCertificate(&opts, &opts, &rootTemplate, rootKey)

En définissant l'indicateur IsCA, le certificat auto-signé sera généré correctement et le client pourra vérifier avec succès la chaîne de certificats du serveur.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn