mirror of
https://github.com/VictoriaMetrics/VictoriaMetrics.git
synced 2026-05-17 00:26:36 +03:00
40 lines
1.0 KiB
Go
40 lines
1.0 KiB
Go
package promauth
|
|
|
|
import (
|
|
"crypto/tls"
|
|
"net/http"
|
|
|
|
"github.com/VictoriaMetrics/VictoriaMetrics/lib/httputil"
|
|
)
|
|
|
|
// NewTLSTransport creates a new http.Transport from the provided args.
|
|
func NewTLSTransport(certFile, keyFile, caFile, serverName string, insecureSkipVerify bool, metricsPrefix string) (*http.Transport, error) {
|
|
tlsCfg, err := NewTLSConfig(certFile, keyFile, caFile, serverName, insecureSkipVerify)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
tr := httputil.NewTransport(false, metricsPrefix)
|
|
tr.TLSClientConfig = tlsCfg
|
|
|
|
return tr, nil
|
|
}
|
|
|
|
// NewTLSConfig creates new tls.Config from the provided args.
|
|
func NewTLSConfig(certFile, keyFile, caFile, serverName string, insecureSkipVerify bool) (*tls.Config, error) {
|
|
opts := &Options{
|
|
TLSConfig: &TLSConfig{
|
|
CertFile: certFile,
|
|
KeyFile: keyFile,
|
|
CAFile: caFile,
|
|
ServerName: serverName,
|
|
InsecureSkipVerify: insecureSkipVerify,
|
|
},
|
|
}
|
|
ac, err := opts.NewConfig()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return ac.GetTLSConfig()
|
|
}
|