2013-02-24 2 views
15

После того, как я много раз заработал, я, наконец, сделал свой haproxy ssl для работы. Но теперь у меня проблема, потому что root и промежуточный сертификат не установлены, поэтому у моего ssl нет зеленой полосы.Конфигурация Haproxy ssl - установить корневой и промежуточный сертификат

Мой HAProxy конфигурации

global 
     maxconn  4096 
     nbproc  1 
     #debug 
     daemon 
     log   127.0.0.1 local0 

    defaults 
     mode  http 
     option  httplog 
     log   global 
    timeout connect 5000ms 
    timeout client 50000ms 
    timeout server 50000ms 

    frontend unsecured 
     bind 192.168.0.1:80 
     timeout  client 86400000 
     reqadd X-Forwarded-Proto:\ http 
     default_backend  www_backend 

    frontend secured 
    mode http 
    bind 192.168.0.1:443 ssl crt /etc/haproxy/cert.pem 
    reqadd X-Forwarded-Proto:\ https 
    default_backend www_backend 

    backend www_backend 
     mode  http 
     balance  roundrobin 
     #cookie  SERVERID insert indirect nocache 
     #option  forwardfor 
     server  server1 192.168.0.2:80 weight 1 maxconn 1024 check 
     server  server2 192.168.0.2:80 weight 1 maxconn 1024 check 

192.168.0.1 мой балансировки нагрузки IP. /etc/haproxy/cert.pem содержат закрытый ключ и сертификат домена, например. www.domain.com

another question with ssl configuration, которые включают bundle.crt. Когда я связался со своей поддержкой ssl, они сказали мне, что мне нужно установить корневой и промежуточный сертификат.

От Comodo Documentation, создавая пучок просто, как слияние их crt, которые я сделал.

Но когда я пытаюсь переконфигурируйте мой HAproxy конфигурации, как

bind 192.168.0.1:443 ssl crt /etc/haproxy/cert.pem ca-file /path/to/bundle.crt 

получать ошибки Im, что я не могу использовать этот параметр конфигурации на привязку.

p.s im с использованием версии 1.5 dev12. С последней версией dev17 я имел проблемы даже начиная HAProxy as on this post

enter image description here

+0

Вы должны [отключить SSLv3] (HTTP://blog.haproxy.com/2014/10/15/haproxy-and-sslv3-poodle-vulnerability/) с 'bind 192.168.0.1:443 ssl crt /etc/haproxy/cert.pem ca-file/path/to/bundle.crt no-sslv3' –

ответ

35

Похоже, вам нужно перекомпилировать так:

make clean 
make \ 
    TARGET="linux26" \ 
    USE_STATIC_PCRE=1 \ 
    USE_OPENSSL=1 
make install PREFIX="/opt/haproxy" 

После этого bind следует признать свой вариант Crt. В моем случае, я использовал:

bind 0.0.0.0:443 ssl crt /envs/production/ssl/haproxy.pem 

Я сцепляюсь все Ssl файлов в 1 большой файл в цепочке сертификатов порядка, закрытый ключ. например .:

-----BEGIN MY CERTIFICATE----- 
-----END MY CERTIFICATE----- 
-----BEGIN INTERMEDIATE CERTIFICATE----- 
-----END INTERMEDIATE CERTIFICATE----- 
-----BEGIN INTERMEDIATE CERTIFICATE----- 
-----END INTERMEDIATE CERTIFICATE----- 
-----BEGIN ROOT CERTIFICATE----- 
-----END ROOT CERTIFICATE----- 
-----BEGIN RSA PRIVATE KEY----- 
-----END RSA PRIVATE KEY----- 

Перезагрузка и тест с openssl s_client -connect 127.0.0.1:443 -servername www.transloadit.com |head.

Он должен вернуть правильную информацию сертификата.

Редактировать: Я только что нашел этот учебник с помощью HackerNews: https://serversforhackers.com/c/using-ssl-certificates-with-haproxy. Подумал, что было бы полезно добавить, поскольку он идет более подробно.

+0

плохо попробуйте, но можете ли вы рассказать мне мой заказ на сертификаты, https://support.comodo.com/index.php?_m=knowledgebase&_a=viewarticle&kbarticleid=1209 –

+2

Обновлен ответ, чтобы показать точный порядок сертификаты. – kvz

+0

Нет необходимости отправлять корневой сертификат либо в его хранилище доверия, либо в него не будет доверено. –

0

К сожалению, я не уверен, какая версия HAProxy является вариантом USE_OPENSSL доступен ... Я не могу найти эту опцию в коде есть V 1.4.24

Valid USE_* options are the following. Most of them are automatically set by 
# the TARGET, others have to be explictly specified : 
# USE_CTTPROXY   : enable CTTPROXY on Linux (needs kernel patch). 
# USE_DLMALLOC   : enable use of dlmalloc (see DLMALLOC_SRC) patch). 
# USE_EPOLL   : enable epoll() on Linux 2.6. Automatic. patch). 
# USE_GETSOCKNAME  : enable getsockname() on Linux 2.2. Automatic. patch). 
# USE_KQUEUE   : enable kqueue() on BSD. Automatic. patch). 
# USE_MY_EPOLL   : redefine epoll_* syscalls. Automatic. patch). 
# USE_NETFILTER  : enable netfilter on Linux. Automatic.patch). 
# USE_PCRE    : enable use of libpcre for regex. Recommended.patch). 
# USE_POLL    : enable poll(). Automatic.patch). 
# USE_REGPARM   : enable regparm optimization. Recommended on x86.patch). 
# USE_SEPOLL   : enable speculative epoll(). Automatic.patch). 
# USE_STATIC_PCRE  : enable static libpcre. Recommended.patch). 
# USE_TPROXY   : enable transparent proxy. Automatic. patch). 
# USE_LINUX_TPROXY  : enable full transparent proxy. Automatic. patch). 
# USE_LINUX_SPLICE  : enable kernel 2.6 splicing. Automatic. patch). 
# USE_LIBCRYPT   : enable crypted passwords using -lcrypt patch). 
# USE_CRYPT_H   : set it if your system requires including crypt.h 
+1

попробуйте 1.5+ версию, а не 1.4+. Однако 1.5 по-прежнему «dev», но его работы отлично подходят для меня в производстве –

+0

По состоянию на 19 июня 2014 года выпущена стабильная версия HAProxy 1.5 – kvz

Смежные вопросы