2013-09-16 89 views
7

Có thể buộc https cho toàn bộ ứng dụng mà không định nghĩa nó cho tất cả 100 tuyến đường/quy tắc tường lửa không?Symfony2: Cách buộc HTTPS cho toàn bộ ứng dụng?

Chúng tôi đã cố gắng buộc https trên cấp độ máy chủ web, nhưng symfony2 vẫn cố gắng chuyển hướng đến http và tạo một số liên kết lạ (http: // [...]: 443).

Tôi đã đọc tài liệu cấu hình nhưng không tìm thấy bất kỳ điều gì cho điều đó. Tất cả các mục nhập sổ nấu ăn cũng chỉ cho phép nó trên mỗi tuyến đường/quy tắc bảo mật.

+0

Làm thế nào bạn ép nó lên cấp độ máy chủ web? –

+1

Tại sao buộc các ứng dụng để làm điều đó, chỉ cần để nginx làm thay đổi để https –

+0

Vui lòng gửi cấu hình bảo mật của bạn. – jovobe

Trả lời

0

How to force HTTPS or HTTP for Different URLs

Thành phần Security cung cấp một cách để thực thi HTTPS thông qua các thiết lập requires_channel. Phương pháp thay thế này phù hợp hơn để bảo đảm "khu vực" của trang web của bạn (tất cả các URL trong/admin) hoặc khi bạn muốn bảo mật các URL được xác định trong gói bên thứ ba.

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

Như tôi đã nói, tôi không muốn làm điều đó cho mọi quy tắc bảo mật nhưng cho toàn bộ trang web. – eReiche

0

Có vẻ như chúng tôi đã định cấu hình sai máy chủ web của mình. Để tham khảo, đây là cấu hình hiện đang hoạt động:

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; 
      } 
    }