in client/testserver/testserver.go [99:132]
func StartHTTPSServer(t *testing.T, handlers []TestRequestHandler, clientCAPath string) string {
t.Helper()
testRoot := testhelper.PrepareTestRootDir(t)
crt := path.Join(testRoot, "certs/valid/server.crt")
key := path.Join(testRoot, "certs/valid/server.key")
server := httptest.NewUnstartedServer(buildHandler(handlers))
cer, err := tls.LoadX509KeyPair(crt, key)
require.NoError(t, err)
server.TLS = &tls.Config{
Certificates: []tls.Certificate{cer},
MinVersion: tls.VersionTLS12,
}
if clientCAPath != "" {
caCert, err := os.ReadFile(clientCAPath)
require.NoError(t, err)
caCertPool := x509.NewCertPool()
caCertPool.AppendCertsFromPEM(caCert)
server.TLS.ClientCAs = caCertPool
server.TLS.ClientAuth = tls.RequireAndVerifyClientCert
}
server.StartTLS()
t.Cleanup(func() { server.Close() })
return server.URL
}