DEV Community

Joseph King
Joseph King

Posted on

Connect Heroku Redis V6 to .Net Core Heroku App hosted through Docker

I have a staging .Net Core app hosted on Heroku via Docker which uses the Heroku Redis addon as a cache. Heroku recently upgrade all mini plans to version 6 and I understand version 6 requires a TLS connection... sorry if I'm getting this wrong.

In any case, I can't start the app due to the following error from StackExchange.Redis:

Timeout performing SUBSCRIBE (5000ms), inst: 4, qu: 1, qs: 0, aw: False, bw: SpinningDown, serverEndpoint: [amazon ecs endpoint here], mc: 1/1/0, mgr: 10 of 10 available, clientName: 319aa5ff-317f-42e6-9a2e-d0c8e0be9020(SE.Redis-v2.6.66.47313), IOCP: (Busy=0,Free=1000,Min=1,Max=1000), WORKER: (Busy=0,Free=32767,Min=8,Max=32767), POOL: (Threads=6,QueuedItems=0,CompletedItems=302), v: 2.6.66.47313 (Please take a look at this article for some common client-side issues that can cause timeouts: https://stackexchange.github.io/StackExchange.Redis/Timeouts) 
Enter fullscreen mode Exit fullscreen mode

I've tried validating the server certificate with the following:

private static ConfigurationOptions GetHerokuRedisConfigurationOptions(string host, int port, string password) { var config = new ConfigurationOptions { ConnectRetry = 3, AbortOnConnectFail = false, Ssl = true, Password = password, EndPoints = { { host, port } } }; config.CertificateValidation += ValidateServerCertificate; return config; } private static bool ValidateServerCertificate( object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { if (sslPolicyErrors == SslPolicyErrors.None) return true; Console.WriteLine("Certificate error: {0}", sslPolicyErrors); return false; } 
Enter fullscreen mode Exit fullscreen mode

This produces the following error:

Certificate error: RemoteCertificateNameMismatch, RemoteCertificateChainErrors

How can I configure the TLS connection in StackExchange.Redis in order to connect to the Heroku Redis Data addon?

Thank you!
Joe

Top comments (0)