1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
| package main
import ( "crypto/tls" "crypto/x509" "fmt" "io/ioutil" "log" "net/http" )
func main() { caInfo,err:=ioutil.ReadFile("server.crt") if err!=nil{ log.Fatal(err) } certPool:=x509.NewCertPool() certPool.AppendCertsFromPEM(caInfo)
clientCert,err:=tls.LoadX509KeyPair("client.crt","client.key") if err!=nil{ log.Fatal(err) } cfg:=tls.Config{ RootCAs: certPool, Certificates: []tls.Certificate{clientCert}, InsecureSkipVerify: true, } client:=http.Client{Transport: &http.Transport{TLSClientConfig: &cfg}} response,err:=client.Get("https://localhost:433") if err!=nil{ log.Fatal(err) } bodyInfo,err:=ioutil.ReadAll(response.Body) if err!=nil { log.Fatal(err) } defer response.Body.Close() fmt.Printf("body : %s\n",bodyInfo) fmt.Printf("response : %s\n",response.Status) }
|