2016-08-22 6 views
0

동일한 코드가 우분투에서 작동 할 수 있으며 Centos에서 작동하지 않습니다! 방화벽이 이미 닫혔습니다!Pika는 우분투에서 RabbitMq에 연결할 수 있지만 Centos에서는 작동하지 않습니까?

우분투 16.04, 파이썬 버전 3.5.2.

Centos 7, python 버전 3.5.2.

우분투 및 센소스는 새로 설치된 가상 박스입니다! RabbitMq config tls!

CentOS에서 연결하는 경우 rabbitmq disable ssl은 정상이지만 연결하면 rabbitmq enable ssl이 실패합니다.

도와 주시겠습니까? 매우 감사합니다!

이쪽 rabbitmq의 설정 :

rabbit, [ 
     { loopback_users, [ ] }, 
     { tcp_listeners, [ 5672 ] }, 
     { ssl_listeners, [ 5671 ] }, 
     { ssl_options, [ 
       { cacertfile, "/ca/private/ca.crt" }, 
       { certfile, "/ca/server/server.pem" }, 
       { fail_if_no_peer_cert, false }, 
       { keyfile, "/ca/server/server.key" }, 
       { verify, verify_peer } 
     ] }, 
     { hipe_compile, false } 
] 

이 코드 :

#!/usr/bin/env python3.5 
import pika 
import ssl 

ssl_options = {  
    "ca_certs":"/root/ca/private/ca.crt", 
    "certfile": "/root/ca/rbq/client.crt", 
    "keyfile": "/root/ca/rbq/client.key", 
    "cert_reqs": ssl.CERT_REQUIRED, 
    "ssl_version":ssl.PROTOCOL_TLSv1_2 
} 
credentials = pika.PlainCredentials('ttttt', '123456') 
parameters = pika.ConnectionParameters(host='192.168.1.164', 
             port=5671, 
             virtual_host='/', 
             heartbeat_interval = 0, 
             credentials=credentials, 
             ssl = True, 
             ssl_options = ssl_options) 
connection = pika.BlockingConnection(parameters) 
connection.close() 

이 오류 메시지 :

Traceback (most recent call last): 
    File "./rb.py", line 20, in <module> 
    connection = pika.BlockingConnection(parameters) 
    File "/usr/local/lib/python3.5/site-packages/pika/adapters/blocking_connection.py", line 339, in __init__ 
    self._process_io_for_connection_setup() 
    File "/usr/local/lib/python3.5/site-packages/pika/adapters/blocking_connection.py", line 374, in _process_io_for_connection_setup 
    self._open_error_result.is_ready) 
    File "/usr/local/lib/python3.5/site-packages/pika/adapters/blocking_connection.py", line 395, in _flush_output 
    raise exceptions.ConnectionClosed() 
pika.exceptions.ConnectionClosed 

이 rabbitmq 서버 로그 :

[[email protected] rabbitmq]# tail [email protected] 
SSL: certify: ssl_alert.erl:93:Fatal error: decrypt error 

=INFO REPORT==== 22-Aug-2016::12:50:48 === 
accepting AMQP connection <0.22118.20> (192.168.1.131:48526 -> 192.168.1.164:5671) 

=INFO REPORT==== 22-Aug-2016::12:50:48 === 
closing AMQP connection <0.22118.20> (192.168.1.131:48526 -> 192.168.1.164:5671) 

=ERROR REPORT==== 22-Aug-2016::12:54:04 === 
SSL: certify: ssl_alert.erl:93:Fatal error: decrypt error 
,
+0

포트가 열려 있고 연결을 중지 할 수있는 방화벽 규칙이 없습니까? – piyushj

+0

방화벽이 이미 닫혔습니다. – Yangyang

+0

이것 좀 봐 https://github.com/pika/pika/issues/650 – piyushj

답변

0

내 서버 인증서는 서명 알고리즘 내가 SHA256에 알고리즘을 업데이트

redhat document about openssl

로 md5WithRSAEncryption를 사용합니다. 나는 잘 작동한다! :)

감사합니다. avij!