@@ -263,11 +263,34 @@ func setupClientAuth(authType string) (tls.ClientAuthType, error) {
263
263
return tls .NoClientCert , nil
264
264
}
265
265
266
+ // TLSBaseConfig returns a *tls.Config with the base set of security
267
+ // requirements (minimum TLS v1.2 and set of cipher suites)
268
+ func TLSBaseConfig () * tls.Config {
269
+ tlsCfg := new (tls.Config )
270
+ tlsCfg .MinVersion = tls .VersionTLS12
271
+ tlsCfg .CipherSuites = []uint16 {
272
+ tls .TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 ,
273
+ tls .TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 ,
274
+ tls .TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 ,
275
+ tls .TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 ,
276
+ tls .TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305 ,
277
+ tls .TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305 ,
278
+ tls .TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA ,
279
+ tls .TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA ,
280
+ tls .TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA ,
281
+ tls .TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA ,
282
+ tls .TLS_RSA_WITH_AES_128_GCM_SHA256 ,
283
+ tls .TLS_RSA_WITH_AES_256_GCM_SHA384 ,
284
+ tls .TLS_RSA_WITH_AES_256_CBC_SHA ,
285
+ }
286
+ return tlsCfg
287
+ }
288
+
266
289
// GenerateServerTLSConfig creates and returns a new *tls.Config with the
267
290
// configuration provided.
268
291
func GenerateServerTLSConfig (config * TLSHelperConfig ) (tlsCfg * tls.Config , err error ) {
269
292
if config .CertRequired {
270
- tlsCfg = new (tls. Config )
293
+ tlsCfg = TLSBaseConfig ( )
271
294
cert , err := tls .LoadX509KeyPair (config .Cert , config .Key )
272
295
if err != nil {
273
296
return nil , err
@@ -286,23 +309,6 @@ func GenerateServerTLSConfig(config *TLSHelperConfig) (tlsCfg *tls.Config, err e
286
309
}
287
310
tlsCfg .ClientAuth = auth
288
311
289
- tlsCfg .MinVersion = tls .VersionTLS12
290
- tlsCfg .CipherSuites = []uint16 {
291
- tls .TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 ,
292
- tls .TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 ,
293
- tls .TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 ,
294
- tls .TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 ,
295
- tls .TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305 ,
296
- tls .TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305 ,
297
- tls .TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA ,
298
- tls .TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA ,
299
- tls .TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA ,
300
- tls .TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA ,
301
- tls .TLS_RSA_WITH_AES_128_GCM_SHA256 ,
302
- tls .TLS_RSA_WITH_AES_256_GCM_SHA384 ,
303
- tls .TLS_RSA_WITH_AES_256_CBC_SHA ,
304
- }
305
-
306
312
return tlsCfg , nil
307
313
}
308
314
return nil , nil
0 commit comments