func TestClient(t *testing.T) {
pemData, err := ioutil.ReadFile("cert.pem")
if err != nil {
panic(err)
}
block, _ := pem.Decode(pemData)
certificate, err := x509.ParseCertificate(block.Bytes)
if err != nil {
t.Error(err)
return
}
ErrBadCertificate := errors.New("bad certificate")
conf := &tls.Config{
InsecureSkipVerify: true,
VerifyPeerCertificate: func(rawCerts [][]byte, verifiedChains [][]*x509.Certificate) error {
t.Log("VerifyPeerCertificate")
ok := bytes.Equal(certificate.Raw, rawCerts[0])
if !ok {
return ErrBadCertificate
}
return nil
},
}
cli := http.Client{
Transport: &http.Transport{
TLSClientConfig: conf,
MaxConnsPerHost: 6,
IdleConnTimeout: time.Second*10,
},
}
for i := 0; i < 10; i++ {
_, _ = cli.Get("https://localhost:8080/"+strconv.Itoa(i))
//ioutil.ReadAll(resp.Body)
//resp.Body.Close()
}
}
网友评论