Golang : Use TLS version 1.2 and enforce server security configuration over client
Problem:
You want to force your Golang program to use TLS(Transport Layer Security) protocol version 1.2 only and use server TLS configuration instead of client. How to do that?
Solution:
Set the MinVersion, MaxVersion parameters to tls.VersionTLS12
and PreferServerCipherSuites to true
. Setting PreferServerCipherSuites will force client to use server TLS configuration.
config.MinVersion = tls.VersionTLS12
config.MaxVersion = tls.VersionTLS12
config.PreferServerCipherSuites = true
For example:
config := tls.Config{Certificates : []tls.Certificate{certificate}, ClientAuth: tls.RequireAnyClientCert}
config.CipherSuites = []uint16{
tls.TLS_RSA_WITH_AES_256_CBC_SHA,
tls.TLS_RSA_WITH_AES_128_CBC_SHA,
tls.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,
tls.TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,
tls.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,
tls.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,
tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,
tls.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256}
config.MinVersion = tls.VersionTLS12
config.MaxVersion = tls.VersionTLS12
config.PreferServerCipherSuites = true
References:
See also : Golang : Use modern ciphers only in secure connection
By Adam Ng
IF you gain some knowledge or the information here solved your programming problem. Please consider donating to the less fortunate or some charities that you like. Apart from donation, planting trees, volunteering or reducing your carbon footprint will be great too.
Advertisement
Tutorials
+9.4k RPM : error: db3 error(-30974) from dbenv->failchk: DB_RUNRECOVERY: Fatal error, run database recovery
+5.5k Golang : Embedded or data bundling example
+8.9k Golang : Print how to use flag for your application example
+4k Google : Block or disable caching of your website content
+9.7k Golang : Simple image viewer with Go-GTK
+6.7k Golang : Grayscale Image
+5.9k Golang : Levenshtein distance example
+11.1k Golang : calculate elapsed run time
+10.7k Golang : Pagination with go-paginator configuration example
+6.4k Golang : How to convert strange string to JSON with json.MarshalIndent
+4.4k PHP : Fix Call to undefined function curl_init() error
+30.9k Golang : Convert []string to []byte examples