>백엔드 개발 >Golang >Go에서 GoDaddy\의 SSL 인증서에 \'불완전한 인증서 체인\' 오류가 발생하는 이유는 무엇입니까?

Go에서 GoDaddy\의 SSL 인증서에 \'불완전한 인증서 체인\' 오류가 발생하는 이유는 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-10-27 08:46:30334검색

Why Am I Getting an

SSL 문제: GoDaddy 인증서의 불완전한 인증서 체인

GoDaddy의 SSL 인증서를 사용하여 HTTPS 웹 서버를 설정할 때 오류가 발생할 수 있습니다. "이 서버의 인증서 체인이 불완전합니다." 이는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.