Maison  >  Article  >  développement back-end  >  Pourquoi est-ce que je reçois une erreur « Chaîne de certificats incomplète » avec le certificat SSL de GoDaddy dans Go ?

Pourquoi est-ce que je reçois une erreur « Chaîne de certificats incomplète » avec le certificat SSL de GoDaddy dans Go ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-27 08:46:30222parcourir

Why Am I Getting an

Problème SSL : chaîne de certificats incomplète avec le certificat de GoDaddy

Lors de la configuration d'un serveur Web HTTPS à l'aide des certificats SSL de GoDaddy, vous pouvez rencontrer l'erreur "La chaîne de certificats de ce serveur est incomplète." Cela peut être dû à une mauvaise configuration dans votre code Go.

Solution :

Pour résoudre ce problème, assurez-vous que le fichier de certificat utilisé dans ListenAndServeTLS() contient le fichier complet chaîne de certificats. Cela inclut le certificat du serveur, les certificats intermédiaires (le cas échéant) et le certificat racine de l'autorité de certification.

Dans votre code, vous chargez actuellement le fichier de certificat principal et la clé privée, mais il vous manque le fichier bundle. , qui contient généralement les certificats intermédiaires.

Remplacez la ligne suivante :

err := srv.ListenAndServeTLS("cert/myalcoholist.pem","cert/myalcoholist.key")

par ceci :

cert, err := tls.LoadX509KeyPair("cert/myalcoholist.pem","cert/myalcoholist.key")
if err != nil {
    log.Fatalf("server: loadkeys: %s", err)
}
pem, err := ioutil.ReadFile("cert/cert/sf_bundle-g2-g1.crt")
if err != nil {
    log.Fatalf("Failed to read client certificate authority: %v", err)
}
if !certpool.AppendCertsFromPEM(pem) {
    log.Fatalf("Can't parse client certificate authority")
}
tlsConfig := &tls.Config{
    ClientCAs:    certpool,
    Certificates: []tls.Certificate{cert},
}
srv := &http.Server{
    Addr: "myalcoholist.com:443",
    Handler: n,
    ReadTimeout: time.Duration(5) * time.Second,
    WriteTimeout: time.Duration(5) * time.Second,
    TLSConfig: tlsConfig,
}
err := srv.ListenAndServeTLS("cert/myalcoholist.pem","cert/myalcoholist.key")

Cela chargera la chaîne de certificats complète et configurera le TLSConfig en conséquence.

Conseils supplémentaires :

  • Envisagez de définir des suites de chiffrement dans votre TLSConfig pour une meilleure sécurité.
  • Après avoir apporté les modifications, testez à nouveau votre certificat SSL en utilisant https://www.ssllabs.com pour vérifier l'amélioration de la note du certificat.

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