mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-31 15:25:57 +00:00
enable system cas
This commit is contained in:
parent
e83bf49f86
commit
a093ea34c3
@ -171,30 +171,41 @@ func NewClientCertTLSConfig(certData, keyData, caData []byte) (*tls.Config, erro
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
certPool := x509.NewCertPool()
|
|
||||||
certPool.AppendCertsFromPEM(caData)
|
|
||||||
return &tls.Config{
|
return &tls.Config{
|
||||||
// Change default from SSLv3 to TLSv1.0 (because of POODLE vulnerability)
|
// Change default from SSLv3 to TLSv1.0 (because of POODLE vulnerability)
|
||||||
MinVersion: tls.VersionTLS10,
|
MinVersion: tls.VersionTLS10,
|
||||||
Certificates: []tls.Certificate{
|
Certificates: []tls.Certificate{
|
||||||
cert,
|
cert,
|
||||||
},
|
},
|
||||||
RootCAs: certPool,
|
RootCAs: rootCertPool(caData),
|
||||||
ClientCAs: certPool,
|
|
||||||
ClientAuth: tls.RequireAndVerifyClientCert,
|
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewTLSConfig(caData []byte) (*tls.Config, error) {
|
func NewTLSConfig(caData []byte) (*tls.Config, error) {
|
||||||
certPool := x509.NewCertPool()
|
|
||||||
certPool.AppendCertsFromPEM(caData)
|
|
||||||
return &tls.Config{
|
return &tls.Config{
|
||||||
// Change default from SSLv3 to TLSv1.0 (because of POODLE vulnerability)
|
// Change default from SSLv3 to TLSv1.0 (because of POODLE vulnerability)
|
||||||
MinVersion: tls.VersionTLS10,
|
MinVersion: tls.VersionTLS10,
|
||||||
RootCAs: certPool,
|
RootCAs: rootCertPool(caData),
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// rootCertPool returns nil if caData is empty. When passed along, this will mean "use system CAs".
|
||||||
|
// When caData is not empty, it will be the ONLY information used in the CertPool.
|
||||||
|
func rootCertPool(caData []byte) *x509.CertPool {
|
||||||
|
// What we really want is a copy of x509.systemRootsPool, but that isn't exposed. It's difficult to build (see the go
|
||||||
|
// code for a look at the platform specific insanity), so we'll use the fact that RootCAs == nil gives us the system values
|
||||||
|
// It doesn't allow trusting either/or, but hopefully that won't be an issue
|
||||||
|
if len(caData) == 0 {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// if we have caData, use it
|
||||||
|
certPool := x509.NewCertPool()
|
||||||
|
certPool.AppendCertsFromPEM(caData)
|
||||||
|
return certPool
|
||||||
|
}
|
||||||
|
|
||||||
func NewUnsafeTLSConfig() *tls.Config {
|
func NewUnsafeTLSConfig() *tls.Config {
|
||||||
return &tls.Config{
|
return &tls.Config{
|
||||||
InsecureSkipVerify: true,
|
InsecureSkipVerify: true,
|
||||||
|
Loading…
Reference in New Issue
Block a user