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);
Друзья! Приглашаем вас к обсуждению. Если у вас есть своё мнение, напишите нам в комментарии.