소스 검색

Avoid fallback to SSL protocols < TLS1.0

Signed-off-by: Tibor Vass <teabee89@gmail.com>

Docker-DCO-1.1-Signed-off-by: Daniel, Dao Quang Minh <dqminh89@gmail.com> (github: dqminh)
Daniel, Dao Quang Minh 10 년 전
부모
커밋
7a062b2b8f
3개의 변경된 파일9개의 추가작업 그리고 1개의 파일을 삭제
  1. 2 0
      api/server/server.go
  2. 2 0
      docker/docker.go
  3. 5 1
      registry/registry.go

+ 2 - 0
api/server/server.go

@@ -1439,6 +1439,8 @@ func ListenAndServe(proto, addr string, job *engine.Job) error {
 		tlsConfig := &tls.Config{
 		tlsConfig := &tls.Config{
 			NextProtos:   []string{"http/1.1"},
 			NextProtos:   []string{"http/1.1"},
 			Certificates: []tls.Certificate{cert},
 			Certificates: []tls.Certificate{cert},
+			// Avoid fallback on insecure SSL protocols
+			MinVersion: tls.VersionTLS10,
 		}
 		}
 		if job.GetenvBool("TlsVerify") {
 		if job.GetenvBool("TlsVerify") {
 			certPool := x509.NewCertPool()
 			certPool := x509.NewCertPool()

+ 2 - 0
docker/docker.go

@@ -93,6 +93,8 @@ func main() {
 			}
 			}
 			tlsConfig.Certificates = []tls.Certificate{cert}
 			tlsConfig.Certificates = []tls.Certificate{cert}
 		}
 		}
+		// Avoid fallback to SSL protocols < TLS1.0
+		tlsConfig.MinVersion = tls.VersionTLS10
 	}
 	}
 
 
 	if *flTls || *flTlsVerify {
 	if *flTls || *flTlsVerify {

+ 5 - 1
registry/registry.go

@@ -36,7 +36,11 @@ const (
 )
 )
 
 
 func newClient(jar http.CookieJar, roots *x509.CertPool, cert *tls.Certificate, timeout TimeoutType) *http.Client {
 func newClient(jar http.CookieJar, roots *x509.CertPool, cert *tls.Certificate, timeout TimeoutType) *http.Client {
-	tlsConfig := tls.Config{RootCAs: roots}
+	tlsConfig := tls.Config{
+		RootCAs: roots,
+		// Avoid fallback to SSL protocols < TLS1.0
+		MinVersion: tls.VersionTLS10,
+	}
 
 
 	if cert != nil {
 	if cert != nil {
 		tlsConfig.Certificates = append(tlsConfig.Certificates, *cert)
 		tlsConfig.Certificates = append(tlsConfig.Certificates, *cert)