美文网首页
客户端验证证书

客户端验证证书

作者: 风亡小窝 | 来源:发表于2020-10-15 16:48 被阅读0次
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()
    }
}

相关文章

网友评论

      本文标题:客户端验证证书

      本文链接:https://www.haomeiwen.com/subject/uodopktx.html