RabbitMQ Authentication using SSL

Hello,

I have a doubt regarding the RabbitMQ Node and the Docs don’t have the information I need, hence this post.

I have a RabbitMQ Server, configured with SSL, I have a consumer running and connected to the server. I’m trying to use n8n to connect to RabbitMQ so that some of my already existing nodes can send messages to the Queue Server.

When I start configuring my RabbitMQ account in n8n, I type the hostname, port, user and password, vhost, etc., and I turn on the SSL switch. I don’t want to use Auth with Certificates, so I maintain the Passwordless switch turned off.

The last field is called “CA Certificates”, which I believe should be a Path to the CA Certificate, so that the Client can verify that it is indeed talking to the correct server. So, I tried to type the CA Certificate Path (in the server) but the field has an input type of a password (*****).

image

What is the expected value type I should configure this field with?

Thanks for the help.

Kind regards,
Rob

Information about the n8n setup:

  • n8n version:
  • Database: SQLite
  • Running n8n with the execution process: own(default)
  • Running n8n via: npm

Hey @robjennings,

I have just taken a look at the code for the node and it looks like it is expecting the content of the certificate file in that parameter.

Hi @Jon,

Thanks for your reply.

You mean copying the content of the ca file and pasting it on n8n?

I just tried it and it didn’t work:

image

Here, I used the “Expression” view just for you to see that the field has indeed that value, otherwise we would only see the asterisks. Unfortunately, the same error persists:

Kind regards,
Rob

After saving the configuration, closing the page and opening it again, the CA Certificates field appears like this:
image

Kind regards,
Rob

That second image is ok, We have stopped returning what could be sensitive data to the UI. Looking at the code assuming that is the CA Certificate it should be working, If you just try using the node does that work? It may show a more useful error message if it fails as well.

Thanks again for your support.

By running the node, the following error is obtained:

I have a Python script connected to RabbitMQ, which will be the consumer up and running, so I assume the error is on the client (publisher) side, in this case n8n.

Kind regards,
Rob

That does look like the package is unhappy about something during the initial handshake, I am fairly sure the values being used are correct.

It looks like if SSL is set we set the protocol to amqps and pass the key, I will have to set up a local RabbitMQ instance with SSL to dig into this one more. Do you happen to have a handy guide or docker instructions for it?

Well, I had some troubles configuring the server, and found several pages that ended up helping me, but the main part is this:
https://www.rabbitmq.com/ssl.html#enabling-tls

The other pages were about creating the whole Python code to use the Certificates for the Consumer. During that biggest problem I had was because RabbitMQ wasn’t validating the whole Certificate Chain (I’m not using Self Signed Certs), so I read about adding ssl_options.depth = 2 to my rabbitmq.conf and after that the whole chain was verified and had no more problems.

So far I have a consumer up and running, and want to use several n8n nodes as the producers.

Let me know if there is anything else you need.

Kind regards,
Rob