ホームページ  >  記事  >  バックエンド開発  >  Go で GoDaddy の SSL 証明書で「不完全な証明書チェーン」エラーが発生するのはなぜですか?

Go で GoDaddy の SSL 証明書で「不完全な証明書チェーン」エラーが発生するのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-27 08:46:30230ブラウズ

Why Am I Getting an

SSL 問題: GoDaddy の証明書を使用した不完全な証明書チェーン

GoDaddy の SSL 証明書を使用して HTTPS Web サーバーをセットアップするときに、次のエラーが発生する場合があります「このサーバーの証明書チェーンは不完全です。」これは、Go コードの構成ミスが原因である可能性があります。

解決策:

この問題を解決するには、ListenAndServeTLS() で使用される証明書ファイルに完全な証明書が含まれていることを確認してください。証明書チェーン。これには、サーバーの証明書、中間証明書 (存在する場合)、およびルート CA 証明書が含まれます。

コードでは、現在メイン証明書ファイルと秘密キーをロードしていますが、バンドル ファイルが欠落しています。これには通常、中間証明書が含まれています。

次の行を次のように置き換えます:

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

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")

これにより、完全な証明書チェーンがロードされ、それに応じて TLSConfig を設定します。

追加のヒント:

  • セキュリティを向上させるために、TLSConfig で暗号スイートを設定することを検討してください。
  • 変更を加えた後、再テストしてください。 https://www.ssllabs.com を使用して SSL 証明書を作成し、証明書のグレードの向上を確認します。

以上がGo で GoDaddy の SSL 証明書で「不完全な証明書チェーン」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。