问题背景: 使用golang调用harbor仓库api进行项目创建时,没有跳过https请求证书验证。
问题解决:
client.SetTLSClientConfig(&tls.Config{InsecureSkipVerify: true})
// SetTLSClientConfig method sets TLSClientConfig for underling client Transport.
//
// For Example:
// // One can set custom root-certificate. Refer: http://golang.org/pkg/crypto/tls/#example_Dial
// client.SetTLSClientConfig(&tls.Config{ RootCAs: roots })
//
// // or One can disable security check (https)
// client.SetTLSClientConfig(&tls.Config{ InsecureSkipVerify: true })
//
// Note: This method overwrites existing `TLSClientConfig`.
func (c *Client) SetTLSClientConfig(config *tls.Config) *Client {
transport, err := c.transport()
if err != nil {
c.log.Errorf("%v", err)
return c
}
transport.TLSClientConfig = config
return c
}
// InsecureSkipVerify controls whether a client verifies the server's
// certificate chain and host name. If InsecureSkipVerify is true, crypto/tls
// accepts any certificate presented by the server and any host name in that
// certificate. In this mode, TLS is susceptible to machine-in-the-middle
// attacks unless custom verification is used. This should be used only for
// testing or in combination with VerifyConnection or VerifyPeerCertificate.
InsecureSkipVerify bool