2013-09-16 10 views
7

Czy można wymusić https dla całej aplikacji bez zdefiniowania go dla wszystkich 100 tras/reguł zapory?Symfony2: Jak wymusić HTTPS dla całej aplikacji?

Próbowaliśmy wymusić https na poziomie serwera WWW, ale symfony2 nadal próbuje przekierować do http i generuje dziwne linki (http: // [...]: 443).

Przeczytałem dokumentację konfiguracyjną, ale nic nie znalazłem. Wszystkie wpisy w książce kucharskiej służą tylko do włączania tej opcji dla każdej reguły trasy/bezpieczeństwa.

+0

Jak wymusiłeś to na poziomie serwera WWW? –

+1

Po co wymuszać aplikację, po prostu pozwól nginxowi wprowadzić zmianę na https –

+0

Wyślij swoją konfigurację zabezpieczeń. – jovobe

Odpowiedz

0

How to force HTTPS or HTTP for Different URLs

Składnik Security zapewnia sposób, aby wymusić HTTPS poprzez ustawienie requires_channel. Ta alternatywna metoda jest lepiej przystosowana do zabezpieczenia "obszaru" witryny (wszystkie adresy URL pod/admin) lub gdy chcesz zabezpieczyć adresy URL zdefiniowane w pakiecie innej firmy.

access_control: 
    - path: ^/secure 
     roles: ROLE_ADMIN 
     requires_channel: https 
+1

Jak już powiedziałem, nie chcę tego robić dla każdej reguły bezpieczeństwa, ale dla całej witryny. – eReiche

0

Wydaje się, że źle skonfigurowane naszych serwerach. Dla porównania, oto teraz działająca konfiguracja:

server { 
      listen x.x.x.x:80; 
      server_name domain.tld; 
      listen  80; 

      location/{ 
        rewrite  ^(.*) https://domain.tld$1 permanent; 
      } 
    } 

    server { 
      gzip    on; 
      gzip_types   text/plain text/css application/x-javascript text/xml application/xml application/rss+xml text/javascript image/x-icon; 
      gzip_min_length  1000; 
      gzip_comp_level  6; 
      gzip_http_version 1.0; 
      gzip_vary   on; 
      gzip_proxied  expired no-cache no-store private auth; 
      gzip_disable  msie6; 

      listen x.x.x.x:443; 

      ssl   on; 
      ssl_certificate  /etc/nginx/wildcard_ssl/cert.pem; 
      ssl_certificate_key /etc/nginx/wildcard_ssl/cert.key; 

      server_name domain.tld; 

      root /var/www/domain.tld/current/web/; 

      access_log /var/log/nginx/domain.tld/access.log main; 
      error_log /var/log/nginx/domain.tld/error.log; 

      rewrite ^/app\.php/?(.*)$ /$1 permanent; 

      location/{ 
        index app.php; 
        try_files $uri @rewriteapp; 
      } 
      location @rewriteapp { 
        rewrite ^(.*)$ /app.php/$1 last; 
      } 

      location @long_time { 
        fastcgi_pass tldpass; 
        fastcgi_split_path_info ^(.+\.php)(/.*)$; 
        include fastcgi_params; 
        fastcgi_param SCRIPT_FILENAME $document_root/app.php; 
        fastcgi_param HTTPS    on; 

        fastcgi_read_timeout 300; 
      } 
      location ~ ^/app\.php(/|$) { 
        include fastcgi_params; 
        fastcgi_pass tldpass; 
        fastcgi_split_path_info ^(.+\.php)(/.*)$; 
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
        fastcgi_param HTTPS    on; 
        fastcgi_read_timeout 600s; 

        access_log /var/log/nginx/domain.tld/php-only.log; 
      } 

      location ~* ^.+\.(jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|wav|bmp|rtf|htc)$ { 
        expires  31d; 
        add_header Cache-Control private; 
      } 
    } 
Powiązane problemy