Validate SQS SSL certs by default #2094
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
By default, Kombu does not validate SSL certs when connecting to SQS. As a result, when attempting to connect to a server which requires SNI, the connection fails:
Server aborted the SSL handshake
Specifically, curl.py#L238 sets SSL_VERIFYHOST to 0 by default. This code has not been updated since it was originally merged 10 years ago.
curl's documentation says this:
Curl's default value for this is
2
.This only seems to cause issues on my MacOS laptop (M3, Sonoma 14.4.1). It works fine in Linux - it is possible that different systems will have different curl versions or behaviors. I'm running python 3.12.4 and tested with the latest Celery+Kombu from github.