Merhaba,

RabbitMQ uygulamasında listener port non-secure 5672 portunu kullanmaktadır. Bu listener portu secure olan 5671 yapıp ssl ile gerekli config ayarlarını aşağıda yapacağız.

Öncelikle ssl sertifikamızın olmadığını varsayarak sıfırdan sertifika üreteceğiz. Bunun için ben ubuntu server üzerinde openssl kullanıyorum. Kurulumunu ayrıca aşağıdaki komutla yapabilirsiniz

sudo apt install openssl

SSL Sertifika üretmek için sunucuda aşağıdaki adımları uyguluyoruz

mkdir -p ~/rabbitmq-ssl
cd ~/rabbitmq-ssl

CA (Sertifika Otoritesi) oluştur

openssl genrsa -out ca.key 2048
openssl req -x509 -new -nodes -key ca.key -sha256 -days 3650 -out ca.crt \
-subj "/C=TR/ST=Istanbul/O=MyRabbitMQ CA/CN=MyRootCA"

Sunucu (server) için anahtar ve CSR (Certificate Signing Request)

openssl genrsa -out server.key 2048
openssl req -new -key server.key -out server.csr \
-subj "/C=TR/ST=Istanbul/O=MyRabbitMQ Server/CN=localhost"

Sunucu sertifikasını CA ile imzala

openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial \
-out server.crt -days 365 -sha256

Sertifikaları RabbitMQ için uygun dizine taşı

sudo mkdir -p /etc/rabbitmq/ssl
sudo cp server.crt server.key ca.crt /etc/rabbitmq/ssl/
sudo chown -R rabbitmq:rabbitmq /etc/rabbitmq/ssl

RabbitMQ Konfigürasyonunu Yap

/etc/rabbitmq/rabbitmq.conf dosyayı nano yada vim ile aç, dosya yoksa oluştur ve aşağıdaki kodları ekle.

listeners.ssl.default = 5671


ssl_options.cacertfile = /etc/rabbitmq/ssl/ca.crt
ssl_options.certfile = /etc/rabbitmq/ssl/server.crt
ssl_options.keyfile = /etc/rabbitmq/ssl/server.key
ssl_options.verify = verify_none
ssl_options.fail_if_no_peer_cert = false

RabbitMQ’yu Yeniden Başlat

sudo systemctl restart rabbitmq-server

Openssl ile Test Etme

openssl s_client -connect localhost:5671 -CAfile /etc/rabbitmq/ssl/ca.crt