ssl - 带有 haproxy ssl 终止的 Ejabberd

标签 ssl ejabberd haproxy

有人成功地使用 haproxy 1.7 终止了 ejabberd + ssl 吗?

frontend ejabberd   
bind *:4000 ssl crt /etc/haproxy/certs/my-domain.com.pem
mode tcp
timeout client  3h

option tcplog

option clitcpka

default_backend ejabberd

backend ejabberd
mode tcp

timeout server  60m 

option redispatch

option srvtcpka

option independent-streams

balance leastconn

default-server inter 5s rise 3 fall 3 on-marked-down shutdown-sessions

server ejabberd localhost:5222 check slowstart 120s

它在没有 ssl crt 的情况下工作正常。我的 smack 客户端给我一个 No response received within reply timeout。超时为 5000 毫秒(~5 秒)。在等待建立 TLS 时。

我也尝试过在 ejabberd conf 上使用或不使用 ttls

最佳答案

我能够让确切的配置工作,你需要:

  1. 在 ejabberd 中禁用 tls,因为 HAProxy 正在执行 ssl 卸载并且 ejabberd 托管在同一台机器上:

    • 注释certfile行
    • 注释starttls行
  2. 正确地配置您的客户端,我已经使用了 pidgin,但您应该能够使用 smack 执行相同的操作:

    • 正确配置地址和端口(这里是4000)
    • 确保您使用“旧式 TLS”而不是 STARTTLS,后者不适用于 HAProxy。

否则,如果您希望客户端使用 STARTTLS 配置,则必须配置 HAProxy 以代理 XMPP 加密流量(删除“ssl crt ..”)

关于ssl - 带有 haproxy ssl 终止的 Ejabberd,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46621641/

相关文章:

haproxy - HAProxy 支持集群吗?

linux - 从 haproxy 查找正在运行的节点

ssl - 通过 IP 地址访问 HTTPS 的证书错误

java - 无服务器群组消息传递(聊天)Xmpp

performance - Haproxy 调整性能?

erlang - 测试 ejabberd 模块

xmpp - 如何在 XMPP ejabberd 服务器中使用 Rosters 访问所有用户

java - MongoSocketReadException : Prematurely reached end of stream (Java to Mongo using ssl)

java - 我正在尝试创建具有不同 URL 的套接字。我如何处理失败的连接?

ios - Charles 代理 SSL 连接不会显示主机名,仅显示 ips