Go에서 인증서를 사용하여 HTTPs 요청을 보내는 방법
다른 포트에서 실행되는 서버에 HTTPS 요청을 할 때 일반적으로 발생하는 인증서 관련 오류가 발생합니다. 이는 서버의 인증서가 알 수 없는 기관에 의해 서명되었으며 기본 HTTP 클라이언트가 자체 서명된 인증서를 신뢰하지 않기 때문에 발생합니다.
이 문제를 해결하려면 적절한 CA 인증서를 사용하여 서버의 인증서를 수동으로 확인해야 합니다. . Go에서 이 작업을 수행하는 방법에 대한 단계별 가이드는 다음과 같습니다.
CA 인증서 획득:
인증서 풀 생성:
TLS 옵션 구성:
사용자 정의 전송을 사용하여 HTTP 클라이언트 생성:
예 코드:
package main import ( "crypto/tls" "crypto/x509" "io/ioutil" "log" "net/http" ) func main() { // Read the CA certificate from file caCert, err := ioutil.ReadFile("rootCA.crt") if err != nil { log.Fatal(err) } // Create a certificate pool and add the CA cert caCertPool := x509.NewCertPool() caCertPool.AppendCertsFromPEM(caCert) // Configure TLS options tlsConfig := &tls.Config{ RootCAs: caCertPool, } // Create an HTTP client with custom transport client := &http.Client{ Transport: &http.Transport{ TLSClientConfig: tlsConfig, }, } // Send an HTTPs request _, err = client.Get("https://secure.domain.com") if err != nil { panic(err) } }
참고:
CA 인증서가 없으면 직접 만들 수 있습니다. 자체 서명 인증서 생성 방법에 대한 지침은 외부 리소스를 참조하세요.
위 내용은 Go에서 자체 서명된 인증서를 사용하여 HTTPS 요청을 만드는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!