Nop version: 3.7
Nginx Proxy (any other proxy would do)
+ Set to use http_x_forwarded_proto ie
<add key="Use_HTTP_X_FORWARDED_PROTO" value="true" />
+ Url: http://www.yourdomain.co.uk/
+ SSL Enabled
+ SSL url - not set
With this setup the culture on the Admin panel is not set to US - so the Telerik controls where dates are involved will fail validation.
The Global.ascx function SetWorkingCulture (line 185) compares the current page url with the storelocation (see line 201). The issues lies in webHelper.GetThisPageUrl(false)
WebHelper - line 188
public virtual string GetThisPageUrl(bool includeQueryString, bool useSsl)
string url = string.Empty;
string storeHost = GetStoreHost(useSsl);
storeHost = storeHost.Substring(0, storeHost.Length - 1);
url = storeHost + _httpContext.Request.RawUrl;
if (_httpContext.Request.Url != null)
url = _httpContext.Request.Url.GetLeftPart(UriPartial.Path);
url = url.ToLowerInvariant();
You can see above - if includeQueryString is true it returns the url based on the useSsl param. The useSsl param is set from webHelper.IsCurrentConnectionSecured - and this takes into account if the http header x-forwarded-for is set.
If includeQueryString is false however then it just gets the current context url - which behind the proxy is http, but if useSsl is true (which it is because of the x-forwarded-for header) then the url returned should be https.
Because it returns a http url - it compares this with getStoreLocation (which correctly returns the url as https) in Global.ascx, line 201 and therefore the compare fails - so the SetTelerikCulture is not called.