Как настроить сертификаты SSL для RabbitMQ

Главная » Блог программиста » Настройка сертификатов SSL для RabbitMQ

Просмотров: 307

Настройка сертификатов SSL для RabbitMQ


Создаем сертификаты по официальной документации и генерируем SSL-сертификаты (для примера пароль bunnies):
git clone https://github.com/rabbitmq/tls-gen tls-gen
cd tls-gen/basic
# private key password
make PASSWORD=bunnies
make verify
make info
ls -l ./result

Разбираемся с именами файлов, копируем нужные файлы в /etc/rabbitmq/ssl :

ca_certificate.pem ca_certificate.pem 1281 CERTIFICATE
ca_key.pem private_key.pem 1854
ENCRYPTED PRIVATE KEY
client_vds2_certificate.pem client_certificate.pem 1249 CERTIFICATE
client_vds2_key.pem client_vds2_key.pem 1874
ENCRYPTED PRIVATE KEY
client_vds2.p12
server_vds2_certificate.pem server_certificate.pem 1334 CERTIFICATE
server_vds2_key.pem server_vds2_key.pem 1874
ENCRYPTED PRIVATE KEY
server_vds2.p12
Решение: client_vds2_certificate_client_vds2_key.pem"}">
cat client_vds2_certificate.pem client_vds2_key.pem > client_vds2_certificate_client_vds2_key.pem


Записываем в файл конфигурации:

touch /etc/rabbitmq/rabbitmq.conf && nano /etc/rabbitmq/rabbitmq.conf

listeners.ssl.default               = 5671
ssl_options.cacertfile              = /etc/rabbitmq/ssl/ca_certificate.pem
ssl_options.certfile                = /etc/rabbitmq/ssl/server_certificate.pem
ssl_options.keyfile                 = /etc/rabbitmq/ssl/server_vds2_key.pem
ssl_options.password                = bunnies
ssl_options.verify                  = verify_peer
ssl_options.fail_if_no_peer_cert    = true
listeners.tcp = none

Настройки клиента (PHP):

use PhpAmqpLib\Connection\AMQPSSLConnection;
use PhpAmqpLib\Message\AMQPMessage;
$sslOptions = array(
'cafile' => '/etc/rabbitmq/ssl/ca_certificate.pem', // Путь к сертификату центра сертификации (CA)
'local_cert' => '/etc/rabbitmq/ssl/client_vds2_certificate_client_vds2_key.pem', // Путь к клиентскому сертификату
'passphrase' => 'bunnies',
'verify_peer' => true // Установка в true для проверки сертификата сервера
);
$this->connection = new AMQPSSLConnection(
'localhost',
5671,
'guest',
'guest',
'/',
$sslOptions);

Друзья! Приглашаем вас к обсуждению. Если у вас есть своё мнение, напишите нам в комментарии.