3

1.5-dev17でsslを有効にしようとしたときにセグメンテーション違反が発生する

Ubuntu Server 12.04

秘密鍵とCAバンドルを連結して単一のcrtとして使用することで考えられるほぼすべてのバリエーションを試しました。また、秘密鍵とca-fileをCAバンドルとして使用してcrtを分割してみました。

/etc/haproxy/haproxy.cfg

global
   maxconn 4096
   daemon

defaults
   mode   http
   contimeout   5000
   clitimeout   50000
   srvtimeout   50000
   option forwardfor
   retries 3
   option redispatch
   option http-server-close

frontend http
   bind *:80
   reqadd X-Forwarded-Proto:\ http
   default_backend unicorn

frontend https
   bind *:443 ssl crt /path/to/private.key ca-file /path/to/bundle.crt
   reqadd X-Forwarded-Proto:\ https
   default_backend unicorn

backend unicorn
   server unicorn 127.0.0.1:8080 check

listen stats :8081
   mode http
   stats enable
   stats scope unicorn
   stats realm Haproxy\ Statistics
   stats uri /
   stats auth haproxy:YOURPASSWORDHERE

gdb出力

Reading symbols from /usr/local/sbin/haproxy...done.
(gdb) run -f /etc/haproxy/haproxy.cfg
Starting program: /usr/local/sbin/haproxy -f /etc/haproxy/haproxy.cfg
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".

Program received signal SIGSEGV, Segmentation fault.
0x000000000045edc0 in bind_parse_ssl (args=<optimized out>, cur_arg=<optimized out>, px=<optimized out>, conf=<optimized out>, err=<optimized out>) at src/ssl_sock.c:2566
2566            list_for_each_entry(l, &conf->listeners, by_bind)
4

1 に答える 1

8

あなたの設定では、haproxy-1.5-dev17 がクラッシュしません。しかし、たまたま ssl サポートを有効にせずに最初のビルドを行い、その後 ssl を使用して部分的な再構築のみを行っていませんか? つまり、次のようなものです:

$ make TARGET=linux2628
...
$ make TARGET=linux2628 USE_STATIC_PCRE=1 USE_OPENSSL=1

その場合、再コンパイルが必要な一部のファイルが再コンパイルされないため、ビルドが無効である可能性があります。

試していただけますか:

make TARGET=linux2628 USE_STATIC_PCRE=1 USE_OPENSSL=1 clean all
于 2013-02-05T13:20:27.353 に答える