github.com/Cloud-Foundations/Dominator@v0.3.4/lib/srpc/setupclient/impl.go (about) 1 package setupclient 2 3 import ( 4 "crypto/tls" 5 "os" 6 "time" 7 8 "github.com/Cloud-Foundations/Dominator/lib/srpc" 9 ) 10 11 func loadCerts() ([]tls.Certificate, error) { 12 if *certDirectory == "" { 13 cert, err := srpc.LoadCertificatesFromMetadata(100*time.Millisecond, 14 false, true) 15 if err != nil { 16 return nil, err 17 } 18 if cert == nil { 19 return nil, nil 20 } 21 return []tls.Certificate{*cert}, nil 22 } 23 // Load certificates. 24 certs, err := srpc.LoadCertificates(*certDirectory) 25 if err != nil { 26 if !os.IsNotExist(err) { 27 return nil, err 28 } 29 } 30 if certs != nil { 31 return certs, nil 32 } 33 cert, err := srpc.LoadCertificatesFromMetadata(100*time.Millisecond, false, 34 true) 35 if err != nil { 36 return nil, err 37 } 38 if cert == nil { 39 return nil, nil 40 } 41 return []tls.Certificate{*cert}, nil 42 } 43 44 func setupTls(ignoreMissingCerts bool) error { 45 certs, err := loadCerts() 46 if err != nil { 47 return err 48 } 49 if certs == nil { 50 if ignoreMissingCerts { 51 return nil 52 } 53 return srpc.ErrorMissingCertificate 54 } 55 // Setup client. 56 clientConfig := new(tls.Config) 57 clientConfig.InsecureSkipVerify = true 58 clientConfig.MinVersion = tls.VersionTLS12 59 clientConfig.Certificates = certs 60 srpc.RegisterClientTlsConfig(clientConfig) 61 return nil 62 }