CLI tools fail to connect to a node using inter-node TLS on Erlang 26 #8560
-
Describe the bugI've run into a fairly serious issue. Namely that I use TLS for inter-node communication and ever since I upgraded some of the nodes in my cluster to RabbitMQ 3.12.0 and Erlang 26, the nodes cannot cluster together. Further investigation demonstrated that despite following instructions almost to the letter (see my notes below on where I differ) the issue persists even in he most trivial case of using certificates with I would appreciate any help in diagnosing this issue. Thank you. Reproduction stepsPlease follow the instructions below on any Ubuntu 22.04 machine, I am confident that they should play out basically the same way, however, I did it on a VM with the hostname Set up a single machinePre-requisitesapt-get update --fix-missing;
apt-get upgrade -y;
apt-get dist-upgrade -y;
apt install -y tmux emacs-nox apt-transport-https socat logrotate init-system-helpers adduser; RabbitMQ & ErlangA copy of the instructions provided here: https://www.rabbitmq.com/install-debian.html#apt-cloudsmith except executed as root from the get-go
Verify that everything seems OK
Configure TLSGenerate CertificatesInstall
|
Beta Was this translation helpful? Give feedback.
Replies: 7 comments 31 replies
-
Inter-node communication is implemented by the runtime, not RabbitMQ. You can try Erlang 25.3.x to compare. Erlang 26 is one month old, neither the core team nor the community have a lot of experience with it. |
Beta Was this translation helpful? Give feedback.
-
There is even less experience with mixed Erlang 25 and 26 clusters. Consider upgrading all nodes to 26 or using 25.3.x on all nodes. |
Beta Was this translation helpful? Give feedback.
-
Erlang 26 release notes mention at least two changes around the distribution protocol, and one specifically around distribution over TLS. Therefore intentional and unintentional breaking changes are likely. When/if there is an isolated way to reproduce a behavior on 26 that is not present on 25 with the same Nothing around how Erlang distribution is used by RabbitMQ has changed in 3.12.0 (in fact, in several years). |
Beta Was this translation helpful? Give feedback.
-
Here is an example of what kind of changes can affect existing installations that use #8548. Could be something similar in the case of TLS for inter-node and CLI tools communication. |
Beta Was this translation helpful? Give feedback.
-
Hello, Please use
When you run the command, capture the full command and full output into a file, and attach the file to your response. Please do NOT paste a giant wall of text. Based on the information you provided, these are the commands you should run:
Thanks! |
Beta Was this translation helpful? Give feedback.
-
@Abraxos - please take a look at this project's
Everything works correctly using inter-node TLS. Note that the docker image is currently using Erlang 25.3.2.2. I'm guessing that, in your case, there may be something that Erlang doesn't like about the certs created by Start by comparing my project and its configuration files to yours, as well as the X509 certs themselves. Use this command to see a text representation of the certs:
Be sure to check the |
Beta Was this translation helpful? Give feedback.
-
One of my first hypotheses was that |
Beta Was this translation helpful? Give feedback.
@Abraxos - please take a look at this project's
tls
branch:Everything works correctly using inter-node TLS. Note that the docker image is currently using Erlang 25.3.2.2.
I'm guessing that, in your case, there may be something that Erlang doesn't like about the certs created by
mkcrt
. The above project uses ourtls-gen
project which we know creates certificates that can be used by Erlang.Start by comparing my project and its configuration files to yours, as well as the X509 certs themselves. Use this command to see a text representation of the certs:
Be sure to …