Skip to content

Instantly share code, notes, and snippets.

@tienthanh2509
Created November 15, 2017 04:07
Show Gist options
  • Save tienthanh2509/78faa6fa09379ea1b67c7eca573b5c28 to your computer and use it in GitHub Desktop.
Save tienthanh2509/78faa6fa09379ea1b67c7eca573b5c28 to your computer and use it in GitHub Desktop.
Test RabbitMQ with validating server certificates
import pika
import urlparse
import ssl
url_str = 'amqps://admin:xxxxxx@localhost//'
channel_id = 'some-rabbitmq-channel'
url = urlparse.urlparse(url_str)
ssl_options = {
"ca_certs": "./ca-bundle.crt",
"cert_reqs": ssl.CERT_REQUIRED
}
params = pika.ConnectionParameters(host=url.hostname,
virtual_host=url.path[1:],
credentials=pika.PlainCredentials(url.username, url.password),
ssl=True,
ssl_options=ssl_options,
)
connection = pika.BlockingConnection(params) # Connect to CloudAMQP
channel = connection.channel() # start a channel
# send a message
payload = '{some json/text}'
channel.basic_publish(exchange='', routing_key=channel_id, body=payload)
print " [ok] Sent ' with payload " + payload
connection.close()
@tienthanh2509
Copy link
Author

Exception if validating falied

Traceback (most recent call last):
  File "/tmp/rabbitmq_ssl_test.py.py", line 26, in <module>
    connection = pika.BlockingConnection(params)  # Connect to CloudAMQP
  File "/usr/local/lib/python2.7/dist-packages/pika/adapters/blocking_connection.py", line 374, in __init__
    self._process_io_for_connection_setup()
  File "/usr/local/lib/python2.7/dist-packages/pika/adapters/blocking_connection.py", line 414, in _process_io_for_connection_setup
    self._open_error_result.is_ready)
  File "/usr/local/lib/python2.7/dist-packages/pika/adapters/blocking_connection.py", line 468, in _flush_output
    raise exceptions.ConnectionClosed(maybe_exception)
pika.exceptions.ConnectionClosed: Connection to 127.0.0.1:5671 failed: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment