Назад | Перейти на главную страницу

Циклы перенаправления SSL CloudFlare

Мы установили на одном сервере обычный веб-сайт (http://example.com) и веб-почта (https://example.com/mail), Debian, Joomla, NGINX, iRedMail.

Для защиты от DDoS мы используем CloudFlare в бесплатном варианте.

Итак, проблема: при выключенном CF все в порядке - сайт и почта доступны. Но при включении CF-защиты - сайт в порядке, а в веб-почте написано "слишком много перенаправлений" в SSL.

Пытался настроить как описано Вот - ничего не меняется.

Похоже, некоторая неправильная конфигурация правил перенаправления в правилах CF или ngnix - не могу понять. Но где?

/etc/nginx/sites-enabled/example.com (интернет сайт):

server {
    listen 80;
    server_name example.com;
    server_name_in_redirect off;

    root /var/www/example.com;
    index index.php index.html index.htm default.html default.htm;

    location / {
        try_files $uri $uri/ /index.php?$args;.
   }

    location ~* /(images|cache|media|logs|tmp)/.*\.(php|pl|py|jsp|asp|sh|cgi)$ {
        return 403;
        error_page 403 /403_error.html;
    }

    location ~* \.(ico|pdf|flv)$ {
        expires 1y;
    }

    location ~* \.(js|css|png|jpg|jpeg|gif|swf|xml|txt)$ {
        expires 14d;
    }

    include /etc/nginx/templates/php-catchall.tmpl;
    include /etc/nginx/templates/redirect_to_https.tmpl;
    include /etc/nginx/templates/misc.tmpl;
}

/etc/nginx/sites-enabled/example.com_443 (электронная почта):

server {
    listen 443;
    server_name mail.example.com;
    ssl on;
    ssl_certificate /etc/ssl/certs/iRedMail.crt;
    ssl_certificate_key /etc/ssl/private/iRedMail.key;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-R
    ssl_prefer_server_ciphers on;
    ssl_dhparam /etc/ssl/dh2048_param.pem;

    index index.php index.html;

location / {
    root /opt/www/roundcubemail;
}

 # Web applications.
include /etc/nginx/templates/roundcube.tmpl;
include /etc/nginx/templates/iredadmin.tmpl;
include /etc/nginx/templates/php-catchall.tmpl;
include /etc/nginx/templates/misc.tmpl;

}

Правила CF:

https://example.com/mail SSL:Flexible - Full

При включении защиты CF example.com (A-запись DNS) mail.example.com попадает в цикл перенаправления.

Вы можете без проблем направить все в DNS CF на IP-адрес, вам просто нужно отключить его прохождение через кеш, поскольку CF не принимает никаких других протоколов, кроме HTTP и HTTPS. так что вы можете вернуть их обратно в записи A и просто отключить маленькое оранжевое облачко рядом с записью.

Надеюсь это поможет.

Вот пример того, как можно настроить DNS. Укажите все, что вы хотите, проходя через кеши CF с включенным оранжевым облаком, и все, что вы не делаете без него. Это позволяет записям A полностью обходить его, как описано выше. Я показал это с псевдонимами для упрощения администрирования, но если вы выполните поиск в DNS, вы получите то же самое.

Проблема была в DNS-записях на сервисе Cloudflare. Это было что-то вроде:

...
example.com. 300 IN A 1.2.3.4
www          300 IN A 1.2.3.4
mail         300 IN A 1.2.3.4
...

Изменены A-записи на CNAME следующим образом:

...
example.com.      300 IN A 1.2.3.4
www.example.com.  300 IN CNAME example.com.
mail.example.com. 300 IN CNAME example.com.
...

сделал вещь.