External redis authentication required

Hi, new here

I deployed redis and tried to open an external port but upon using with the command celery -A config worker --beat --scheduler django --loglevel=info. It states that

Secure redis scheme specified (rediss) with no ssl options, defaulting to insecure SSL behaviour.

consumer: Cannot connect to rediss://red-myname:**@singapore-redis.render.com:6379//: Authentication required…

Note myname i delete the code there to at least avoid u know.

Anyway it seems I cannot connect, idk if it was a wrong format or wrong crendentials?
Any fixes or alternative ?

update: i turn on BROKER_USE_SSL in my django settings now the first error dissappear but the consumer: … still remains.

Hi there,

Thanks for reaching out.

I’m not seeing any issues with connections to the Redis instance in your account.

Are you able to provide some more logs/details around how you’re trying to connect to Redis?

Thanks

Alan

Hi,

Thank you for your fast reply. So far I tried some external redis (for testing) it seems I find it to work in external using redis:// not a rediss:// now I wonder if rediss:// causes the issue.

on my config vars it was

BROKER_URL:  <redis>

on my settings.py. Maybe theres a problem here since it was a SSL connection.

BROKER_URL = os.environ.get('BROKER_URL', '')

BROKER_TRANSPORT_OPTIONS = {'visibility_timeout': 7200} # 2 hours

CELERY_DEFAULT_QUEUE = 'default'

CELERY_RESULT_BACKEND = 'db+{}'.format(DEFAULT_DB)

CELERY_QUEUES = (
    Queue('default', routing_key='default'),
    Queue('external', routing_key='external'),
)

another point to consider maybe my requirements.txt on redis is outdated?

celery==4.4.2
kombu==4.6.8
django-celery-beat==2.0.0
django-celery-results==1.2.1
redis==3.4.1

Or do i missing some docs that it was not allowed redis to be externally used?

update i tried this on my settings.py

import ssl

BROKER_USE_SSL = {
    'ssl_cert_reqs': ssl.CERT_REQUIRED,
}

It stops in defaulting to redis://

But the authentication required still logging

celery -A config worker --beat

I wonder now if it was the password or the host having the problem.

Update #2
I tried to instantiated another redis from other region to change host. Still Authentication required.

Thanks again.

There are a couple of things that might be as play here:

  • Your redis package looks quite old, the current version 4.3.4 Maybe the issue you’re having is fixed in a more recent version?

  • If your connecting service is in the same account & region as your Redis instance, you can use the internal connection string, listed on the Redis instance.

We also have a working Celery example, which currently uses the Python redis package 4.2.2, which may be worth reviewing to see how your project compares.

Hope that helps

Alan

1 Like

Hi,

Upon upgrading my celery, kombu, django-celery-results and redis it seems to work.

Thank you ~

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.