est-il possible de forcer HTTPS pour toute l'application sans la définir pour les 100 routes / règles de pare-feu? P>
Nous avons essayé de forcer HTTPS sur le niveau du serveur Web, mais Symfony2 essaie toujours de rediriger vers http et génère des liens étranges (http: // [...]: 443). P>
J'ai lu la documentation de configuration mais je n'ai rien trouvé pour cela. Toutes les entrées de recettes de cuisine ne sont également que pour lui permettre de la permettre une règle de route / de sécurité. P>
4 Réponses :
Comment forcer HTTPS ou HTTP pour différentes URL
Le composant de sécurité fournit un moyen d'appliquer https via le
Requiert_Channel Code> Réglage. Cette méthode alternative est mieux adaptée Pour sécuriser une "zone" de votre site Web (toutes les URL sous / admin) ou quand Vous souhaitez sécuriser les URL définies dans un ensemble tiers. P> blockQuote>
xxx pré> p>
Comme je l'ai dit, je ne veux pas le faire pour chaque règle de sécurité, mais pour l'ensemble du site Web.
Il semble que nous avons mal configuré notre serveur Web. Pour référence, voici la configuration de travail maintenant:
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; } }
sur Security.YAML
access_control: - { path: ^/, requires_channel: https, host: ^www\.domain\.com$ }
Forcer l'application entière pour gérer uniquement les demandes SSL avec https://github.com/nelio/nelmiosecurityBundleight " A> parameters:
router.request_context.scheme: 'https'
Comment l'avez-vous forcé sur le niveau WebServer?
Pourquoi forcer l'application à le faire, laissez simplement nginx faire le changement en https
Veuillez poster votre configuration de sécurité.