Ends up the rabbitmq logs held the answer. I saw that something was wrong by, but the messages were so cryptic I couldn't tell what was actually breaking. Turns out it was an SSL issue caused by an old version of Erlang, which is what apt was installing by default on ubuntu 14.04 (erlang version R16B03).
This amqp issue was what pointed me to the solution:
https://github.com/squaremo/amqp.node/issues/224
I needed to upgrade to Erlang >= 17.5, then it worked as expected.