consumer.py(clinet)
----------------------------------------------------------------------------------------------------------------------------
import pika, sys, os,ssl
def main():
context =ssl.create_default_context()
context.verify_mode = ssl.CERT_REQUIRED
context.load_verify_locations(cafile="/home/dev/Desktop/rab/ca_certificate.pem")
context.load_cert_chain(certfile="/home/dev/Desktop/rab/client_certificate.pem",keyfile="/home/dev/Desktop/rab/private_key.pem")
credentials = pika.PlainCredentials(username='***', password='***')
conn_params = pika.ConnectionParameters(host="***",port=5672,heartbeat=60,ssl_options=pika.SSLOptions(context),
virtual_host="test_environment",credentials=credentials)
connection = pika.BlockingConnection(conn_params)
channel = connection.channel()
channel.queue_declare(queue='ssl_test')
def callback(ch, method, properties, body):
print(" [x] Received %r" % body)
channel.basic_consume(queue='ssl_test', on_message_callback=callback, auto_ack=True)
print(' [*] Waiting for messages. To exit press CTRL+C')
channel.start_consuming()
if __name__ == '__main__':
try:
main()
except KeyboardInterrupt:
print("Interrupted")
try:
sys.exit(0)
except SystemExit:
pass
----------------------------------------------------------------------------------------------------------------------------
(server)
rabbit.conf
listeners.ssl.default = 5672
ssl_options.cacertfile = /home/dev/testca/ca_certificate.pem
ssl_options.certfile = /home/dev/server/server_certificate.pem
ssl_options.keyfile = /home/dev/server/private_key.pem
ssl_options.verify = verify_peer
ssl_options.fail_if_no_peer_cert = true
listeners.tcp = none
----------------------------------------------------------------------------------------------------------------------------
error -
ConnectionResetError: [Errno 104] Connection reset by peer
----------------------------------------------------------------------------------------------------------------------------
got this error - pika.exceptions.AMQPConnectionError
import pika, sys, os,ssl
def main():
credentials = pika.PlainCredentials(username='**', password='**')
context = ssl.create_default_context(cafile="/home/dev/Desktop/rab/ca_certificate.pem")
context.load_cert_chain("/home/dev/Desktop/rab/client_certificate.pem",
"/home/dev/Desktop/rab/private_key.pem")
ssl_options = pika.SSLOptions(context, "2*.*.*.*")
conn_params = pika.ConnectionParameters(port=5672,heartbeat=60,ssl_options=ssl_options,
virtual_host="test_environment",credentials=credentials)
connection = pika.BlockingConnection(conn_params)
channel = connection.channel()
channel.queue_declare(queue='ssl_test')
def callback(ch, method, properties, body):
print(" [x] Received %r" % body)
channel.basic_consume(queue='ssl_test', on_message_callback=callback, auto_ack=True)
print(' [*] Waiting for messages. To exit press CTRL+C')
channel.start_consuming()
if __name__ == '__main__':
try:
main()
except KeyboardInterrupt:
print("Interrupted")
try:
sys.exit(0)
except SystemExit:
pass