diff --git a/conf/ezbookkeeping.ini b/conf/ezbookkeeping.ini index e9256876..5b698e79 100644 --- a/conf/ezbookkeeping.ini +++ b/conf/ezbookkeeping.ini @@ -200,3 +200,6 @@ data_source = euro_central_bank # Requesting exchange rates data timeout (0 - 4294967295 milliseconds), default is 10000 (10 seconds) request_timeout = 10000 + +# Set to true skip tls verification when request exchange rates data +skip_tls_verify = false diff --git a/pkg/api/exchange_rates.go b/pkg/api/exchange_rates.go index 3a56602e..049115a0 100644 --- a/pkg/api/exchange_rates.go +++ b/pkg/api/exchange_rates.go @@ -1,6 +1,7 @@ package api import ( + "crypto/tls" "io" "net/http" "sort" @@ -32,8 +33,17 @@ func (a *ExchangeRatesApi) LatestExchangeRateHandler(c *core.Context) (interface uid := c.GetCurrentUid() + transport := http.DefaultTransport.(*http.Transport).Clone() + + if settings.Container.Current.ExchangeRatesSkipTLSVerify { + transport.TLSClientConfig = &tls.Config{ + InsecureSkipVerify: true, + } + } + client := &http.Client{ - Timeout: time.Duration(settings.Container.Current.ExchangeRatesRequestTimeout) * time.Millisecond, + Transport: transport, + Timeout: time.Duration(settings.Container.Current.ExchangeRatesRequestTimeout) * time.Millisecond, } urls := dataSource.GetRequestUrls() diff --git a/pkg/settings/setting.go b/pkg/settings/setting.go index 669c299d..5caefdc6 100644 --- a/pkg/settings/setting.go +++ b/pkg/settings/setting.go @@ -232,6 +232,7 @@ type Config struct { // Exchange Rates ExchangeRatesDataSource string ExchangeRatesRequestTimeout uint32 + ExchangeRatesSkipTLSVerify bool } // LoadConfiguration loads setting config from given config file path @@ -590,6 +591,7 @@ func loadExchangeRatesConfiguration(config *Config, configFile *ini.File, sectio } config.ExchangeRatesRequestTimeout = getConfigItemUint32Value(configFile, sectionName, "request_timeout", defaultExchangeRatesDataRequestTimeout) + config.ExchangeRatesSkipTLSVerify = getConfigItemBoolValue(configFile, sectionName, "skip_tls_verify", false) return nil }