Quantcast
Channel: Serverphorums.com - HAProxy
Viewing all articles
Browse latest Browse all 5112

HAProxy Stats and SSL Problems (2 replies)

$
0
0
Hello,

I've been trying to diagnose an odd issue with HAProxy (1.5.x)
statistics and SSL. I'm seeing clients having problems with the SSL
negotiation. When digging with openssl, there seems to be a clear text
http 1.x response which causes the negotiation to fail:

$ openssl s_client -debug -connect lb.com:44300
CONNECTED(00000003)
write to 0x7f96a3504c70 [0x7f96a3804200] (130 bytes => 130 (0x82))
0000 - 80 80 01 03 01 00 57 00-00 00 20 00 00 39 00 00 ......W... ..9..
0010 - 38 00 00 35 00 00 16 00-00 13 00 00 0a 07 00 c0 8..5............
0020 - 00 00 33 00 00 32 00 00-2f 00 00 9a 00 00 99 00 ..3..2../.......
0030 - 00 96 03 00 80 00 00 05-00 00 04 01 00 80 00 00 ................
0040 - 15 00 00 12 00 00 09 06-00 40 00 00 14 00 00 11 .........@......
0050 - 00 00 08 00 00 06 04 00-80 00 00 03 02 00 80 00 ................
0060 - 00 ff 79 2a 0a d7 d8 37-c8 50 b6 f7 c3 8e ce 96 ..y*...7.P......
0070 - cf 2b d9 b8 92 c5 6f 1f-74 7f c0 d1 22 46 71 7a .+....o.t..."Fqz
0080 - e2 b4 ..
read from 0x7f96a3504c70 [0x7f96a3809800] (7 bytes => 7 (0x7))
0000 - 48 54 54 50 2f 31 2e HTTP/1.
1371:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown
protocol:/SourceCache/OpenSSL098/OpenSSL098-52.20.2/src/ssl/s23_clnt.c:618:

$ telnet lb.com 44300
Trying X.X.X.X...
Connected to X.X.X.X.
Escape character is '^]'.
GET /
HTTP/1.0 403 Forbidden
Cache-Control: no-cache
Connection: close
Content-Type: text/html

<html><body><h1>403 Forbidden</h1>
Request forbidden by administrative rules.
</body></html>


The proxy log doesn't have anything that helps me understand what's
going on:


Jun 15 16:47:44 lb.com haproxy[430]: X.X.X.X:55877
[15/Jun/2015:16:47:44.967] stats stats/<NOSRV> -1/-1/-1/-1/0 400 187 - -
PR-- 0/0/0/0/3 0/0 "<BADREQ>"


The pertinent configuration sections are:


global
log 127.0.0.1 local1 info
maxconn 10240
chroot /usr/share/haproxy
user haproxy
group haproxy
daemon

# local stats sockets for read access - change "operator" to
"admin" for r/w
stats socket /var/run/haproxy/haproxy.sock mode 0600 level operator

# Default SSL material locations
ca-base /etc/ssl/certs
crt-base /etc/ssl/private

# Default ciphers to use on SSL-enabled listening sockets.
ssl-default-bind-ciphers
ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS
# Set global SSL bind options
ssl-default-bind-options no-sslv3 no-tls-tickets

tune.ssl.default-dh-param 2048

ssl-server-verify none

defaults
log global
mode http
option httplog
option dontlognull
retries 3
option redispatch
maxconn 10240

# Mime types from here:
#
http://blogs.alfresco.com/wp/developer/2013/11/13/haproxy-for-alfresco/
# and here
# http://serverfault.com/questions/575744/nginx-mime-types-and-gzip
compression algo gzip
compression type text/plain text/html text/html;charset=utf-8
text/css text/javascript application/json

listen stats :44300
bind *:44300 ssl crt /etc/ssl/private/the.pem.withkey.pem
mode http
http-request deny if !{ ssl_fc }
stats enable
stats refresh 5s
stats uri /stats
stats realm "proxies"
stats show-node
stats show-legends
option httplog
option contstats
acl auth_ok_stats http_auth(users_stats)
http-request auth if !auth_ok_stats


Does anyone have any insight?

Thank you in advance,
Matt

Viewing all articles
Browse latest Browse all 5112

Trending Articles