use*_*717 5 ssl rabbitmq rabbitmqctl
按照此处说明的指示,我已经设置了证书颁发机构并rabbitmq.config使用适当的字段创建了该证书.但是,当我尝试连接到RabbitMQ服务器时
openssl s_client -connect 127.0.0.1:5671 -tls1
Run Code Online (Sandbox Code Playgroud)
我在标准输出中得到以下内容:
CONNECTED(00000003)
write:errno=104
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 0 bytes and written 0 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
Protocol : TLSv1
Cipher : 0000
Session-ID:
Session-ID-ctx:
Master-Key:
Key-Arg : None
PSK identity: None
PSK identity hint: None
SRP username: None
Start Time: 1449612785
Timeout : 7200 (sec)
Verify return code: 0 (ok)
---
Run Code Online (Sandbox Code Playgroud)
我在日志中看到以下错误:
=ERROR REPORT==== 8-Dec-2015::16:13:10 ===
Error on AMQP connection <0.257.0>:
{ssl_upgrade_error,
{options,
{cacertfile,"/home/nthompson/learn_celery/testca/cacert.pem",
{error,eacces}}}}
Run Code Online (Sandbox Code Playgroud)
可能是什么问题呢?
我尝试过以下方法但没有成功:
打开权限cacert.pem,即我运行chmod 444 cacert.pem以及一些更无望的权限,没有骰子.
验证所有中间目录都具有775的权限.
验证RabbitMQ服务器确实正在侦听端口5671,它是:
$ sudo rabbitmq status
{listeners,[{clustering,25672,"::"},{amqp,5672,"::"},{'amqp/ssl',5671,"::"}]},
Run Code Online (Sandbox Code Playgroud)检查所有路径rabbitmq.config,并通过设置{verify,verify_none}和松开证书交换策略{fail_if_no_peer_cert,false}.
启用了rabbitmq_auth_mechanism_ssl插件的使用
$ sudo rabbitmq-plugins enable rabbitmq_auth_mechanism_ssl
Run Code Online (Sandbox Code Playgroud)
并确认它已被接收rabbitmq-server.另外,我加入{auth_mechanisms, ['PLAIN', 'AMQPLAIN', 'EXTERNAL']}了rabbitmq.config.
RabbitMQ版本是3.5.4(默认apt-get),但我也升级到3.5.6(最新),看看这是否会消失.
经过一番折腾和搜索,我终于明白了!
就我而言,问题是由认证文件所有权和权限引起的。
我编辑了我的/etc/rabbitmq/rabbitmq.config证书、密钥和 CAfile 指向的/etc/rabbitmq/conf/<file>.pem,复制了原始.pem文件,/etc/rabbitmq/conf/然后chown -R rabbitmq:rabbitmq /etc/rabbitmq/conf重新启动了服务service rabbitmq-server restart,它就工作了。
| 归档时间: |
|
| 查看次数: |
921 次 |
| 最近记录: |