LINUX.ORG.RU
ФорумAdmin

Получение сертификата letsencrypt за haproxy

 , ,


0

1

Есть два стенда за натом, оба на сентос 7:

1. стенд (1) с хапрокси и бекендом в виде nginx (на нем только лежат страницы ошибок, он же является дефолтным бекендом). Тут же стоит certbot (клиент lets’encrypt), в хапрокси настроено получение сертификатов на любой сайт. После расшифровки сертификата, отправляет запрос на второй стенд. Для получения сертификата использую специальный бекенд ( в конфиге ниже).

2. Стенд (2) со связкой nginx+apache. Инжинкс принимает на 80 порту, обрабатывает статику, и отправляет на апачевский 8080.

Задача – соединить два стенда на одной машине. Порты распределила так: хапрокси – 80, инджиниксу – 8070, апачу – 8080. Всё работает, но сертификат получить не могу. Ошибки – ниже.

Конфиги:

 cat /etc/haproxy/haproxy.cfg

[root@conf126 nginx]# cat /etc/haproxy/haproxy.cfg
#-------------------------
# Глобальные настройки
#-------------------------
global
  log         127.0.0.1 local2     # Лог конфигурации
  chroot      /var/lib/haproxy     # Запирает службы в её дериктории
  pidfile     /var/run/haproxy.pid
  maxconn     10000
  user        haproxy               # Haproxy запускается под пользователем и группой "haproxy"
  group       haproxy
  daemon                            # Запускается демоном
  stats socket /var/lib/haproxy/stats
  tune.ssl.default-dh-param 2048
  ssl-default-bind-ciphers ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS
   ssl-default-bind-options no-sslv3 no-tls-tickets
   ssl-default-server-ciphers ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS
   ssl-default-server-options no-sslv3 no-tls-tickets
defaults
  mode     
  log      global  
  option forwardfor
  option http-server-close
  option   httplog  
  option   dontlognull
  option   redispatch  
  retries   3 
  timeout http-request    10s
  timeout queue           1m
  timeout connect         
  timeout client          1m
  timeout server          1m
  timeout http-keep-alive 10s
  timeout check           10s
  maxconn                 3000
frontend http
bind :80
reqadd X-Forwarded-Proto:\ http
default_backend localhost
#----------------------------------
# certbot
acl letsencrypt-acl path_beg /.well-known/acme-challenge/
use_backend letsencrypt-backend if letsencrypt-acl

# test.domen.ru
use_backend test.domen.ru if { hdr_end(host) -i test.domen.ru }     { dst_port 80 }
#----------------------------------
frontend https
 bind :443
 http-request set-header X-SSL %[ssl_fc]
 http-request add-header X-Forwarded-Proto https if { ssl_fc }
 reqadd X-Forwarded-Proto:\ https
 default_backend localhost
#----------------------------------
backend localhost
server server1 127.0.0.1:8070
# test.domen.ru
backend test.domen.ru
server test.domen.ru 127.0.0.1:8070
# certbot
backend letsencrypt-backend
server letsencrypt 127.0.0.1:54321

 cat /etc/nginx/nginx.conf
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log crit;
include /usr/share/nginx/modules/*.conf;
###################################################
events {
   worker_connections 1024;
}
###################################################
http {
   log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                     '$status $body_bytes_sent  "$http_referer" '
                     '"$http_user_agent"  "$http_x_forwarded_for"';
   access_log  /var/log/nginx/access.log  main;
   server_names_hash_max_size 2048;
   server_names_hash_bucket_size 512;
##################################################
  server_tokens off;
  sendfile            on;
   tcp_nopush          on;
   tcp_nodelay         on;
   keepalive_timeout   65;
   types_hash_max_size 2048;
##################################################
   include             /etc/nginx/mime.types;
   default_type        application/octet-stream;
##################################################
gzip on;
gzip_min_length  1100;
gzip_buffers  4 32k;
gzip_types    text/plain application/x-javascript     text/xml text/css;
ignore_invalid_headers on;
client_header_timeout  3m;
client_body_timeout 3m;
client_header_buffer_size 4k;
client_max_body_size 1024m;
send_timeout     3m;
connection_pool_size  256;
client_body_buffer_size 4096k;
charset UTF-8;
#############################################
proxy_connect_timeout 3600s;
proxy_send_timeout 3600s;
proxy_read_timeout 3600s;
proxy_buffer_size 512k;
proxy_buffers 512 4096k;
proxy_busy_buffers_size 4096k;
proxy_temp_file_write_size 4096k;
##############################################
 large_client_header_buffers 4 64k;
 request_pool_size  4k;
 output_buffers   4 32k;
 postpone_output  1460;
include /etc/nginx/conf.d/*.conf;
}
cat /etc/nginx/conf.d/test.domen.ru.conf
server {
       listen       8070;
       server_name  test.domen.ru www.test.domen.ru;
       root /web/site/test.domen.ru;
       location / {
       }
}
ls -la /web/site
drwxr-xr-x 2 nginx nginx  24 апр 20 13:03 test.domen.ru

В логах инджиникса – чисто. При получении сертификата выдает ошибки:

 The following errors were reported by the server:

   Domain: test.domen.ru
   Type:   connection
   Detail: Fetching
   http://test.domen.ru/.well-known/acme-challenge/J2WyfEgZBH6C7qYcURdZG5yOB1mNe8b8F--Q36j4UBA:
   Timeout after connect (your server may be slow or overloaded)

   Domain: www.test.domen.ru
   Type:   connection
   Detail: Fetching
   http://www.test.domen.ru/.well-known/acme-challenge/0PuIG74SFcZ1pOvWq661XWgTBJnwBbGAKto4q_ByGfo:
   Timeout after connect (your server may be slow or overloaded)

   To fix these errors, please make sure that your domain name was
   entered correctly and the DNS A/AAAA record(s) for that domain
   contain(s) the right IP address. Additionally, please check that
   your computer has a publicly routable IP address and that no
   firewalls are preventing the server from communicating with the
   client. If you're using the webroot plugin, you should also verify
   that you are serving files from the webroot path you provided. 

Подскажите куда смотреть, чтобы сертификат получить? Домен доступен, в браузере отображается.

Подскажите куда смотреть

В tcpdump

zolden ★★★★★
()

используй подтверждение через DNS а не HTTP.

sergej ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.