SSL RabbitMQ服务器和客户端配置

时间:2016-02-10 15:13:38

标签: php ssl rabbitmq amqp

我在开发机器上设置了一个RabbitMQ服务器来监听TLS / SSL连接,端口5671,根据以下文档:https://www.rabbitmq.com/ssl.html

通过SSL安全连接发布的AMQP客户端使用videlalvaro / php-amqplib库2.6.0版。

我为服务器和客户端创建了SSL证书颁发机构和证书,如文档中所述。

# mkdir testca
# cd testca
# mkdir certs private
...

然后用建议的内容创建了openssl.cnf, 并为openssl.cnf文件,客户端和服务器目录运行列出的openssl命令。

之后我启用了RabbitMQ SSL支持并在日志中验证了它正在收听:

=INFO REPORT==== 9-Feb-2016::14:02:41 ===
started SSL Listener on 127.0.0.1:5671

我还在客户端实现了SSL,它一切正常。

=INFO REPORT==== 9-Feb-2016::14:09:48 ===
accepting AMQP connection <0.4285.0> (127.0.0.1:28876 -> 127.0.0.1:5671)

服务器和客户端位于同一台开发机器上。

我不太了解的部分是关于SSL权限和证书。

开发中的服务器和客户端都使用相同的〜/ testca / cacert.pem文件。

RabbitMQ配置:

{cacertfile,"/home/me/testca/cacert.pem"},
{certfile,"/home/me/server/cert.pem"},
{keyfile,"/home/me/server/key.pem"},

客户端的AMQPSSLConnection参数:

$sslOptions = array(
'cafile' => '/home/me/testca/cacert.pem',
'local_cert' => '/home/me/client/key-cert.pem',
'peer_name'=>'me-OptiPlex-790',
'verify_peer_name' => true
);

在制作时,服务器和客户端当然位于不同的远程计算机上。

那么,我现在该怎么办?

我想我应该在RabbitMQ制作上遵循相同的程序    机?

也就是说,用一些实际数据创建openssl.cnf文件    生成服务器的密钥和证书?

然后在客户端计算机上为客户端执行相同的操作?

所以服务器和客户端会分开    openssl.cnf和... / testca / cacert.pem文件,以及它们自己的文件    证书和密钥文件?

SSL连接会以这种方式工作吗?

0 个答案:

没有答案