ฉันกำลังใช้ HAproxy เพื่อยุติ TLS (และต่อมาก็โหลดบาลานซ์ด้วย) RabbitMQ (MQTT) เมื่อฉันปิดการใช้งาน TLS มันใช้งานได้ดี อย่างไรก็ตาม เมื่อฉันเปิดใช้งาน TLS ฉันจะได้รับfe_mqtt/1: SSL handshake failure

ใบรับรองที่ฉันใช้ออกโดย Let's Encrypt ไฟล์ PEM ที่ฉันใช้คือคอนแทคของprivkey.pemandfullchain.pem

ผมทำอะไรผิดหรือเปล่า?

นี่คือการกำหนดค่าพร็อกซี HA ของฉัน

global
    log /dev/log    local0
    log /dev/log    local1 notice
    chroot /var/lib/haproxy
    stats socket /run/haproxy/admin.sock mode 660 level admin expose-fd listeners
    stats timeout 30s
    user haproxy
    group haproxy
    daemon

    # generated 2020-05-20, Mozilla Guideline v5.4, HAProxy 2.0.3, OpenSSL 1.1.1d, modern configuration, no HSTS
    # https://ssl-config.mozilla.org/#server=haproxy&version=2.0.3&config=modern&openssl=1.1.1d&hsts=false&guideline=5.4
    ssl-default-bind-ciphersuites TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256
    ssl-default-bind-options no-sslv3 no-tlsv10 no-tlsv11 no-tlsv12 no-tls-tickets

    ssl-default-server-ciphersuites TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256
    ssl-default-server-options no-sslv3 no-tlsv10 no-tlsv11 no-tlsv12 no-tls-tickets

defaults
    log global
    mode    tcp
    option  tcplog
    option  dontlognull
    timeout connect 10s
    timeout client  12m
    timeout server  10m

frontend fe_mqtt
    mode tcp
    bind *:8889 ssl crt /etc/letsencrypt/live/staging-mqtt.example.com/haproxy-combined.pem
    default_backend be_mqtt

backend be_mqtt
    server mqtt-broker 127.0.0.1:1883 send-proxy
answer

ดูเหมือนว่าความต้องการ rabbit mq ในการตั้งค่าเริ่มต้นอย่างน้อย TLSv1 การกำหนดค่าของคุณอนุญาตเฉพาะ TLSv1.3

no-sslv3 no-tlsv10 no-tlsv11 no-tlsv12 no-tls-tickets

ฉันแนะนำสิ่งต่อไปนี้: