diff --git a/common/consts.go b/common/consts.go
index 6bddc6444604af242592afb35cca6bf6fe9e4ef6..fe401c4d295fb3d7fa58eee1c4406ed9a2abfec9 100644
--- a/common/consts.go
+++ b/common/consts.go
@@ -24,5 +24,6 @@ const KubernetesPollTimeout = 180
 const AfterScriptTimeout = 5 * time.Minute
 const DefaultMetricsServerPort = 9252
 const DefaultCacheRequestTimeout = 10
+const DefaultNetworkClientTimeout = 60 * time.Minute
 
 var PreparationRetryInterval = 3 * time.Second
diff --git a/network/client.go b/network/client.go
index 3ee17af0f7fccb787630370b7bb5c1a6c0be3f58..d70c33d2e9b133c3622130b46d110b881b69b3c4 100644
--- a/network/client.go
+++ b/network/client.go
@@ -157,8 +157,11 @@ func (n *client) createTransport() {
 			logrus.Debugln("Dialing:", network, addr, "...")
 			return dialer.Dial(network, addr)
 		},
-		TLSHandshakeTimeout: 10 * time.Second,
-		TLSClientConfig:     &tlsConfig,
+		TLSClientConfig:       &tlsConfig,
+		TLSHandshakeTimeout:   10 * time.Second,
+		ExpectContinueTimeout: 1 * time.Second,
+		IdleConnTimeout:       30 * time.Second,
+		ResponseHeaderTimeout: 10 * time.Second,
 	}
 }
 
@@ -363,6 +366,7 @@ func newClient(requestCredentials requestCredentials) (c *client, err error) {
 		compatibleWithGitLab: true,
 		requestBackOffs:      make(map[string]*backoff.Backoff),
 	}
+	c.Timeout = common.DefaultNetworkClientTimeout
 
 	host := strings.Split(url.Host, ":")[0]
 	if CertificateDirectory != "" {