有人成功地使用 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
最佳答案
我能够让确切的配置工作,你需要:
在 ejabberd 中禁用 tls,因为 HAProxy 正在执行 ssl 卸载并且 ejabberd 托管在同一台机器上:
- 注释certfile行
- 注释starttls行
正确地配置您的客户端,我已经使用了 pidgin,但您应该能够使用 smack 执行相同的操作:
- 正确配置地址和端口(这里是4000)
- 确保您使用“旧式 TLS”而不是 STARTTLS,后者不适用于 HAProxy。
否则,如果您希望客户端使用 STARTTLS 配置,则必须配置 HAProxy 以代理 XMPP 加密流量(删除“ssl crt ..”)
关于ssl - 带有 haproxy ssl 终止的 Ejabberd,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46621641/