É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!