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。
其他提示:
以上是为什么我在 Go 中使用 GoDaddy 的 SSL 证书时收到'不完整的证书链”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!