Jump to content
Froxlor Forum
  • 0
lets.byte.it

nginx+SSL per Domain liefert "falsches" Zertifikat

Question

Hallihallo liebes Forum,

 

ich muss nach einer langen Recherche aufgeben und mal nachfragen. Und zwar geht es konkret darum Froxlor Kunden-Domains mit SSL-Zertifikaten zu best?cken. Wie schon erw?hnt, habe ich mich umgehend umgeschaut und kam nicht wirklich zu einer L?sung des Problems durch Suchen und Ausprobieren.

 

Mal vorweg das Problem: nginx liefert dem Browser das SSL-Zertifikat, was unter "IP and Ports" hinterlegt wurde, also quasi sowas wie das "Server-Fallback-Zertifikat" statt dem SSL-Zertifikat, was der Kunde angelegt hat. Das ist so nat?rlich nicht praktikabel und daher kann da ja nur etwas nicht stimmen.

 

Zu den technischen Details:

  • Der Server ist ein Debian 3.2.65-1+deb7u2 x86_64
  • Es l?uft Froxlor 0.9.33.1-1
  • Es l?uft nginx 1.6.2 (SNI-Support) sowie php5-fpm PHP 5.4.36-0+deb7u3
  • Ich benutze aktuelle Browser mit SNI-Support
  • Die Kunden k?nnen erfolgreich als "virtuelle" UNIX User gemappt werden (also f?r PHP-Socket-Zugriff etc.)

 

Die nginx Vhost Dateien:

 

 

Wie ich das sehe, sieht das korrekt aus, oder? Das Problem ist nun, dass ich statt dem Kunden SSL Zertifikat das der IP bekomme, also das unter /pfad/zum/server/cert.crt.
 
 
Was ich schon gemacht habe:
  • s?mtliche Einstellungen der IP ge?ndert (alle Checkboxen mal durchprobiert), also diese Vhost-Container ja/nein, Servername ja/nein, ?
  • Domains gel?scht/neu hinzugef?gt
  • Zertifikate gel?scht/neu hinzugef?gt
  • Configs neu geschrieben
  • Services neu gestartet
 
Was sonst noch so passiert:
  • L?sche ich das der IP hinterlegte SSL-Zertifikat, sagt nginx bei einer Anfrage auf die SSL-Kunden-Domain, dass kein SSL-Zertifikat angegeben wurde
 
 
Vielleicht habe ich einige Daten, Fakten und Dinge, die ich schon probiert habe, vergessen zu erw?hnen. Fragt doch bitte, wenn was fehlt oder unklar ist.
?ber Denkanst??e w?re ich sehr dankbar, ich bin noch recht neu um Umgang mir Froxlor und wollte jetzt mal die SSL-Implementation testen? 
Ich gehe mal davon aus, dass mein Fehler recht trivial sein d?rfte.

Share this post


Link to post
Share on other sites

19 answers to this question

Recommended Posts

  • 0

Vielen Dank f?r das PDF, so ein nettes Support-Dokument hatte ich bisher nicht gefunden.

Aber ich habe nat?rlich alle Schritte auch ohne das PDF-Dokument bereits exakt so ausgef?hrt, bis auf diverse Versuche im IP-Vhost-Bereich ?nderungen zu machen, damit das richtige Zertifikat ausgeliefert wird.

 

Man kann also im Grunde sagen, dass meine Konfiguration nach dem PDF-Dokument korrekt ist.

Wo jetzt das kleine Detail versteckt ist, das f?r die Fehlauslieferung verantwortlich ist, kann ich dadurch aber auch nicht sagen.

Share this post


Link to post
Share on other sites
  • 0

Die Configs sahen aber korrekt aus. Steht ja alles richtig im vhost. Steht was in den logs?

Share this post


Link to post
Share on other sites
  • 0

Die nginx-Logs sagen dazu "nichts". Das sind ganz normale Requests, es wird kein Eintrag in der error.log hinzugef?gt. 

Wenn ich das IPundPorts-Zertifikat l?sche, dann beschwert nginx sich, dass kein Zertifikat gefunden wurde. Aktuell habe ich da einfach aus Testgr?nden das Kundenzertifikat hinterlegt.

 

Das nginx error.log:

2015/03/21 12:33:35 [error] 18085#0: *32390 no "ssl_certificate" is defined in server listening on SSL port while SSL handshaking, client: xx.xx.xx.xx, server: yy.yy.yy.yy:443

Share this post


Link to post
Share on other sites
  • 0

Die nginx-Logs sagen dazu "nichts". Das sind ganz normale Requests, es wird kein Eintrag in der error.log hinzugef?gt.

Dann die Ausgabefreudigkeit erh?hen. Hierf?r im Kunden-Vhost die "error_log" Zeile anpassen. Das letzte Wort sollte statt "error" dann "debug" lauten.

- error_log /var/customers/logs/meinkunde-meinedomain.de-error.log error;
+ error_log /var/customers/logs/meinkunde-meinedomain.de-error.log debug;

Aufpassen, diese ?nderungen werden nat?rlich von Froxlors Cronjob, wenn er l?uft, wieder zur?ckgesetzt.

Share this post


Link to post
Share on other sites
  • 0

Danke f?r die ausf?hrliche Antwort, das kann wirklich jeder verstehen und nachvollziehen, super!

 

Leider habe ich gelesen, dass nginx daf?r von Haus aus mit dem Debug-Flag kompiliert sein muss, was mein nginx scheinbar nicht ist, da sich die Logs dadurch nicht h?ufen/?ndern. Und das Neukompilieren auf einem Produktivsystem ist gerade etwas schlecht m?glich. 

 

Wenn nichts geht und ich Zeit finde, kann ich das gern mal machen. G?be es noch andere einflussnehmende Faktoren auf die Zertifikatauswahl? Weil es muss ja irgendwie Folgendes passieren: Anfrage -> Vhost zuordnen -> Bei richtigem Vhost wird richtiges Root-Verzeichnis angesprochen -> SSL-Zertifikat aus Vhost laden

Ich verstehe halt nicht, warum da der richtige Vhost f?r das Root-Verzeichnis ja angesprochen wird (weil es kommen ja die erwarteten Daten bei raus) aber das Zertifikat aus dem anderen Vhost genommen wird. Ist da eine Hierarchie dabei, wenn ja, wie genau funktioniert das?

 

Das ist nat?rlich mittlerer Weile wohl doch kein Froxlor-Problem mehr, anfangs dachte ich, es liegt an einer falschen Einstellung meiner Seits. Aber jetzt sieht mir das ja eher nach gescheiterter nginx Konfiguration aus.

Share this post


Link to post
Share on other sites
  • 0

Neukompilieren m?sstest du ja nur, wenn du es manuell kompiliert hast, oder Gentoo verwendest...und selbst dann ist das doch auch auf Produktivsystemen m?glich, erst ein "make install" ?berschreibt doch ?berhaupt erst die Programmdateien und der laufende Dienst wird dadurch auch nicht beeinflusst (ist ja im RAM).

 

Benutzt du Debian o.?. gibt es doch sicher ein debug-paket von nginx.

 

Und nein, was f?r einflussnehmende Faktoren sollte es geben? nginx ordnet dem request den entsprechenden vhost zu, froxlor hat damit nix mehr zu tun...und auch die SSL einstellungen sollte er nat?rlich aus dem entsprechenden vhost-kontext nehmen.

 

Wie ist denn die Ausgabe von folgendem Befehl:

curl -v -s -k https://deine-ssl-seite.de

Share this post


Link to post
Share on other sites
  • 0

Oh okay, alles klar. Ich hatte das nur hier gelesen und dann daraus gefolgert, dass deshalb keine Debug-Informationen im Log auftauchen.

 

Die Ausgabe dazu findet sich hier, bei gesetztem Kundenzertifikat als IPundPorts Zertifikat. Bei nicht gesetzten IPundPorts Zertifikat (aber weiterhin gesetztem Kundenzertifikat) sieht das Ganze so aus.

Share this post


Link to post
Share on other sites
  • 0

und was sagt:

openssl s_client -connect deine-ssl-seite.de:443

Share this post


Link to post
Share on other sites
  • 0

Mit Kundenzertifikat im IPundPorts-Vhost, bitte hier klicken.

Ohne Kundenzertifikat im IPundPorts-Vhost (aber Kundenzertifikat im eigentlichen Vhost):

$ openssl s_client -connect deine-ssl-seite.de:443
CONNECTED(00000003)
write:errno=54

Share this post


Link to post
Share on other sites
  • 0

die Ausgabe vom openssl sieht eigentlich korrekt aus. Das wird ein Clientproblem bei dir sein.

 

Allerdings kann dir das hier keiner best?tigen solange du nicht die eigentliche Domain mal postest damit das auch Dritte verifizieren k?nnen.

Share this post


Link to post
Share on other sites
  • 0

Sephi hat recht, es scheint wohl ein Client-(Caching-)Problem zu sein. Dein Host api.kassencheck24.de (der steht ja nun mal im Zertifikat drin, welches du gepostet hast), funktioniert einwandfrei. Qualys SSL Test gibt dir ein A.

Share this post


Link to post
Share on other sites
  • 0

Hehe, ja klar, ich dachte, es w?re nicht von Belangen, aber da hat ja schon jemand den Host aus dem Zertifikat extrahiert.

 

Das ist ein guter Hinweis mit dem Clientcaching, weil die Configs ja (nach 100 Mal kontrollieren) wirklich stimmen m?ssten. Aber?

Wenn ihr momentan den Host angesprochen habt, habt ihr aber das Kunden-Zertifikat aus der IPundPorts-Vhost-Datei ausgeliefert bekommen und nicht das Kundenzertifikat aus dem Kunden-Vhost. Und wenn ich das Zertifikat aus dem IPundPorts-Vhost wieder rausnehme, kann auch der SSl-Test keine sichere Verbindung zum Host aufbauen. Es kann also nicht am Clientcaching liegen.

 

Qualsy SSL Test:

Assessment failed: No secure protocols supported

nginx error.log:

[error] 18527#0: *9 no "ssl_certificate" is defined in server listening on SSL port while SSL handshaking, client: xx.xx.xx.xx, server: xx.xx.xx.xx:443

Der Witz an der Sache ist ja, dass es mir ohne den SSL-Test ?berhaupt nie aufgefallen w?re, dass da was nicht stimmt. Ich habe n?mlich im Kunden-Vhost alle weiteren Einstellungen hinterlegt, die auf A+ Rating schlie?en m?ssten (OCSP Stapling, Diffie-Hellman, SSL-Session Caching, Public-Key Pinning, Strict-Transport-Security, ?). Die SSL-Einstellungen im Kunden-Vhost werden also ignoriert.

Share this post


Link to post
Share on other sites
  • 0

naja, du kannst keinen ssl IP/port haben, ohne ein Zertifikat. Hinterlege dort einfach ein selbstsigniertes f?r *.dein-server.tld - und f?r den kunden hinterlegst du dann wie im PDF beschrieben das Zertifikat. Und ja, StartSSL Zertifikate sind kein Problem, die nutz ich bei mir auch f?r mehrere Domains.

Share this post


Link to post
Share on other sites
  • 0

naja, du kannst keinen ssl IP/port haben, ohne ein Zertifikat. Hinterlege dort einfach ein selbstsigniertes f?r *.dein-server.tld - und f?r den kunden hinterlegst du dann wie im PDF beschrieben das Zertifikat. Und ja, StartSSL Zertifikate sind kein Problem, die nutz ich bei mir auch f?r mehrere Domains.

 

Wenn das so ist, habe ich das jetzt mal gemacht. Also ein Zertifikat selbst erstellt und im IPundPorts-Bereich hinterlegt. Er liefert jetzt aber trotzdem f?r die Kunden-SSL-Domain das selbst signierte Zertifikat aus, was darin resultiert, dass sich nat?rlich kein Browser mit der Kunden-SSL-Domain verbinden m?chte.

Also habe ich doch irgendwo eine Einstellung fehlerhaft gemacht? Ich habe jetzt noch mal im IPundPorts-Vhost die Checkboxen gesetzt wie das PDF es empfiehlt. 

 

Nebenfrage: Kann nginx die ssl_trusted_certificate-Direktive automatisch mit dem durch Froxlor optional angegebenen CertificateChainFile intern setzen? Alternativ m?sste man das ja dann als Administrator im Domain-Vhost manuell hinzuf?gen und manuell das entsprechende Chainfile auf den Server als Datei erstellen.

Share this post


Link to post
Share on other sites
  • 0

Nebenfrage: Kann nginx die ssl_trusted_certificate-Direktive automatisch mit dem durch Froxlor optional angegebenen CertificateChainFile intern setzen? Alternativ m?sste man das ja dann als Administrator im Domain-Vhost manuell hinzuf?gen und manuell das entsprechende Chainfile auf den Server als Datei erstellen.

 

K?nnen tun wir das, aber aktuell ist es so nicht im code. Kannst du dir ja selbst in den Cronjob patchen, ist ja keine gro?e Sache. und NEIN, das ChainFile erstellst du bitte NICHT selbst wenn du das als Kunde in das Textfeld eingef?gt hast, macht das der Cronjob.

Share this post


Link to post
Share on other sites
  • 0

K?nnen tun wir das, aber aktuell ist es so nicht im code. Kannst du dir ja selbst in den Cronjob patchen, ist ja keine gro?e Sache. und NEIN, das ChainFile erstellst du bitte NICHT selbst wenn du das als Kunde in das Textfeld eingef?gt hast, macht das der Cronjob.

 

Alles klar, es war nur die Frage, ob das theoretisch von Froxlor ?ber eine Einstellung geht, aber dann schau ich mal, wie ich das implementiere. Und der manuelle Weg ist nat?rlich NICHT der richtige Weg, wie Du richtig gesagt hast.

Share this post


Link to post
Share on other sites
  • 0

Hallo, wie sieht es mit dem ssl_trusted_certificate aus? Sollte froxlor das nicht auch in die vhost config bei nginx schreiben? 

der ganze Sinn an so einem System ist ja, dass man alles ?ber die WebUI configuriert. Wenn ich dann noch anfangen muss einzelne Sachen manuell zu erg?nzen (und cronjob patchen ist f?r mich manuell), an die ich mich beim n?chsten mal sicher nicht mal mehr erinnern werde, finde ich das etwas ?rgerlich

Share this post


Link to post
Share on other sites
  • 0

Bitte nicht so alte threads wieder aufleben lassen...ich hab keine lust alles vorherige zu lesen

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By logicbloke
      Hi,
      I'm just wondering what the difference is between the following 2 folders:
      Why is froxlor installing acme.sh cron everytime it runs at 3am everyday especially since the 5-min let's encrypt froxlor cron is already in place? Also, all my db config points to /etc/ssl/froxlor-custom for the domains and all keys/certificates inside that folder have a different md5 from the ones under /root/.acme.sh/, so I'm wondering what's with the mismatch? Are we updating certificates for domains twice?
       
      If anyone can shed some more light on this, it will be very much appreciated.
       
      Many thanks!
    • By schnudeldudel
      Hallo zusammen,
      ist es bekannt, dass man die "erst" PHP-FPM Version nicht löschen kann.
      Hintergrund: Über die Zeit sind neue PHP versionen erschienen und ich würde gern die php70 entfernen (bzw. die Versionen die ich nicht nutze).
      In der GUI kann man aber nicht alle löschen - auch wenn diese nicht benutzt werden - bei mir ist es die "php70" Konfig.
      Original-Screenshot aus meiner Konfig:

       
      Danke für Tipps dazu.
      Gruss.
      Meine Froxlor-Konfig:


    • By Michael Groß
      Hallo zusammen,
      ich kämpfe momentan mit der SSL Konfiguration von meinem Froxlor-Server.
      Bedauerlicherweise befindet sich der Webserver hinter einer Firewall und hat eine private IP Adresse zugewiesen bekommen. 
      Die Firewall leitet entsprechend den Traffic von außerhalb auf den Server weiter (HTTP ist das alles kein Problem).
      Nun habe ich vorhin SSL aktivieren wollen und hierzu kann ich leider keine private IP Adresse eintragen (lässt Froxlor nicht zu).
      Entsprechend habe ich die public IP eingetragen, was aber auch nicht funktioniert, da durch das NAT der Firewall die private IP angesprochen wird - somit funktioniert dies nicht.
      Habt ihr eine Idee, wie man das umbauen kann?
      An sich brauche ich nur die private IP Adresse als SSL Adresse eintragen - vermute aber, dass dadurch Let's Encrypt auch nicht mehr richtig laufen wird.
      Viele Grüße
      Michael
      PS: Ein 1:1 NAT wäre noch eine Möglichkeit, da ich die Public IP aber für diverse Server verwende, fällt das auch raus. Müsste dann eine neue Public IP kaufen, welche ich dann mit einem 1:1 NAT auf den Webserver laufen lasse (wäre noch eine Möglichkeit)
    • By j4mb4l4j4
      Hallo, ich habe eine Frage zum idle-timeout bei PHP-FPM.
      Ich habe gem. Froxlor howto-debian-9-ubuntu-cosmic-php-73  die Installation vorgenommen mit PHP-FPM mit Apache das FPM Basic.
      Wollte mal mit idle-timout in den Settings das Timeout hochschhrauben was ich auch getan habe (siehe Screen).
       
      Bei meinem alten Server wurde mir in den Apache Configs diese Option geschrieben (siehe Screen), das fehlt aber in den Configs beim neuen Server (siehe Screen).
      Wird das woanders hingeschrieben ?
      Überlege nur grade wie ich verifiziere, dass das was ich eingestellt habe auch so übernommen wurde oder ob mir noch ein Setting oder Modul fehlt.



    • By Pro-Webs
      Hallo,
      ich bin gerade dabei einen Shopware Shop v.5 unter nginx mit froxlor einzurichten.
      Das ist jedoch relativ problematisch.
      Aktuell habe ich im Froxlor folgende vHost Einstellung zur Domain:
      location @php { fastcgi_pass unix:/run/php/php7.2-fpm.sock; fastcgi_read_timeout 1500; } location ~ ^/(engine|files|templates|media/(archive|banner|image|music|pdf|unknown|video))/ { rewrite ^/files/documents/.* /engine last; location ~ \.(jpe?g|png|gif|css|js)$ { expires 1M; } } location / { index index.html index.php shopware.php; rewrite shopware.dll /shopware.php; rewrite files/documents/.* /engine last; #rewrite images/ayww/(.*) /images/banner/$1 last; rewrite backend/media/(.*) /media/$1 last; if (!-e $request_filename){ rewrite . /shopware.php last; } location ~ \.(jpe?g|png|gif|css|js)$ { rewrite backend/media/(.*) /media/$1 last; expires 1M; } } location ~ \.(tpl|yml|ini)$ { deny all; } location /install/ { location /install/assets { } if (!-e $request_filename){ rewrite . /install/index.php last; } } location /update/ { location /update/assets { } location /update/templates { } if (!-e $request_filename){ rewrite . /update/index.php last; } } location /recovery/install/ { location /recovery/install/assets { } if (!-e $request_filename){ rewrite . /recovery/install/index.php last; } } location /recovery/update/ { location /recovery/update/assets { } if (!-e $request_filename){ rewrite . /recovery/update/index.php last; } } location ~ ^/(logs|media/temp|bin|cache)/ { deny all; } location ~ \.php$ { try_files $uri =404; include /etc/nginx/fastcgi_params; fastcgi_pass 127.0.0.1:9000; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param HTTPS $fastcgi_https; fastcgi_param HTTP_AUTHORIZATION $http_authorization; } Diese Einstellung führt zu einem 500 error.
      Meine 35_froxlor_ssl_vhost_studio-ausruestung.de.conf sieht damit leider wie folgt aus:
      # 35_froxlor_ssl_vhost_studio-ausruestung.de.conf # Created 02.01.2020 14:30 # Do NOT manually edit this file, all changes will be deleted after the next domain change at the panel. server { listen 91.250.82.51:443 ssl; server_name studio-ausruestung.de www.studio-ausruestung.de xn--studio-ausrstung-tzb.de *.xn--studio-ausrstung-tzb.de studioausruestung.de *.studioausruestung.de priolite-shop.com www.priolite-shop.com sirui-shop.de www.sirui-shop.de shooting-gutschein.de *.shooting-gutschein.de shooting-gutscheine.de *.shooting-gutscheine.de; ssl_protocols TLSv1 TLSv1.2; ssl_ciphers ECDHE-RSA-AES128-SHA256:AES128-GCM-SHA256:RC4:HIGH:!MD5:!aNULL:!EDH; ssl_ecdh_curve secp384r1; ssl_prefer_server_ciphers on; ssl_certificate /etc/ssl/froxlor-custom/studio-ausruestung.de.crt; ssl_certificate_key /etc/ssl/froxlor-custom/studio-ausruestung.de.key; add_header Strict-Transport-Security "max-age=0"; ssl_stapling on; ssl_stapling_verify on; ssl_trusted_certificate /etc/ssl/froxlor-custom/studio-ausruestung.de.crt; include /etc/apache2/conf-enabled/acme.conf; access_log /var/customers/logs/klimek-studio-ausruestung.de-access.log combined; error_log /var/customers/logs/klimek-studio-ausruestung.de-error.log error; root /var/customers/webs/klimek/studio-ausruestung.de/shopware/; location / { index index.php index.html index.htm; try_files $uri $uri/ @rewrites; index index.html index.php shopware.php; rewrite shopware.dll /shopware.php; rewrite files/documents/.* /engine last; #rewrite images/ayww/(.*) /images/banner/$1 last; rewrite backend/media/(.*) /media/$1 last; if (!-e $request_filename){ rewrite . /shopware.php last; } location ~ \.(jpe?g|png|gif|css|js)$ { rewrite backend/media/(.*) /media/$1 last; expires 1M; } } location @rewrites { rewrite ^ /index.php last; } location /webalizer { alias /var/customers/webs/klimek/webalizer/studio-ausruestung.de/; auth_basic "Restricted Area"; auth_basic_user_file /etc/nginx/htpasswd/1-c3d3ffdab2b8342809d19524c21b98c1.htpasswd; } location ~ \.php { try_files /333c3697df6a41bcc37bccd05271f644.htm @php; } location @php { fastcgi_split_path_info ^(.+\.php)(/.+)$; include /etc/nginx/fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; try_files $fastcgi_script_name =404; fastcgi_index index.php; fastcgi_param HTTPS on; fastcgi_pass unix:/run/php/php7.2-fpm.sock; fastcgi_read_timeout 1500; } location ~ ^/(engine|files|templates|media/(archive|banner|image|music|pdf|unknown|video))/ { rewrite ^/files/documents/.* /engine last; location ~ \.(jpe?g|png|gif|css|js)$ { expires 1M; } } location ~ \.(tpl|yml|ini)$ { deny all; } location /install/ { location /install/assets { } if (!-e $request_filename){ rewrite . /install/index.php last; } } location /update/ { location /update/assets { } location /update/templates { } if (!-e $request_filename){ rewrite . /update/index.php last; } } location /recovery/install/ { location /recovery/install/assets { } if (!-e $request_filename){ rewrite . /recovery/install/index.php last; } } location /recovery/update/ { location /recovery/update/assets { } if (!-e $request_filename){ rewrite . /recovery/update/index.php last; } } location ~ ^/(logs|media/temp|bin|cache)/ { deny all; } } Man bemerkt u.a. das einige Konfigurationen doppelt vorhanden sind, da floxlor diese auch selbst generiert. Das könnte natürlich schon die Ursache des Fehler sein. Ich weiß nur leider nicht, wie ich es "besser" lösen kann.
      Die original .htaccess für den appache sieht folgende Konfiguration vor:
      php_value memory_limit 1024M php_value max_execution_time 600 php_value upload_max_filesize 20M php_value post_max_size 20M <IfModule mod_rewrite.c> RewriteEngine on #RewriteBase /shopware/ # Https config for the backend #RewriteCond %{HTTPS} !=on #RewriteRule backend/(.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] RewriteRule shopware.dll shopware.php RewriteRule files/documents/.* engine [NC,L] RewriteRule backend/media/(.*) media/$1 [NC,L] RewriteRule custom/.*(config|menu|services|plugin)\.xml$ ./shopware.php?controller=Error&action=pageNotFoundError [NC,L] RewriteCond %{REQUEST_URI} !(\/(engine|files|templates|themes|web)\/) RewriteCond %{REQUEST_URI} !(\/media\/(archive|banner|image|music|pdf|unknown|video)\/) RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ shopware.php [PT,L,QSA] # Fix missing authorization-header on fast_cgi installations RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L] </IfModule> <IfModule mod_alias.c> # Restrict access to VCS directories RedirectMatch 404 /\\.(svn|git|hg|bzr|cvs)(/|$) # Restrict access to root folder files RedirectMatch 404 /(autoload\.php|composer\.(json|lock|phar)|README\.md|UPGRADE-(.*)\.md|CONTRIBUTING\.md|eula.*\.txt|\.gitignore|.*\.dist|\.env.*)$ # Restrict access to shop configs files RedirectMatch 404 /(web\/cache\/(config_\d+\.json|all.less))$ # Restrict access to theme configurations RedirectMatch 404 /themes/(.*)(.*\.lock|package\.json|\.gitignore|Gruntfile\.js|all\.less|node_modules\/.*)$ </IfModule> # Staging environment #SetEnvIf Host "staging.test.shopware.in" SHOPWARE_ENV=staging # Development environment #SetEnvIf Host "dev.shopware.in" SHOPWARE_ENV=dev #SetEnv SHOPWARE_ENV dev DirectoryIndex index.html DirectoryIndex index.php DirectoryIndex shopware.php # Disables download of configuration <Files ~ "\.(tpl|yml|ini)$"> # Deny all requests from Apache 2.4+. <IfModule mod_authz_core.c> Require all denied </IfModule> # Deny all requests from Apache 2.0-2.2. <IfModule !mod_authz_core.c> Deny from all </IfModule> </Files> # Enable gzip compression <IfModule mod_deflate.c> AddOutputFilterByType DEFLATE text/html text/xml text/plain text/css text/javascript application/javascript application/json application/font-woff application/font-woff2 image/svg+xml </IfModule> <Files ~ "\.(jpe?g|png|gif|css|js|woff|woff2|ttf|svg|webp|eot|ico)$"> <IfModule mod_expires.c> ExpiresActive on ExpiresDefault "access plus 1 month" </IfModule> <IfModule mod_headers.c> Header append Cache-Control "public" Header unset ETag </IfModule> FileETag None </Files> # Match generated files like: # 1429684458_t22_s1.css # 1429684458_t22_s1.js <FilesMatch "([0-9]{10})_(.+)\.(js|css)$"> <ifModule mod_headers.c> Header set Cache-Control "max-age=31536000, public" </ifModule> <IfModule mod_expires.c> ExpiresActive on ExpiresDefault "access plus 1 year" </IfModule> </FilesMatch> # Disables auto directory index <IfModule mod_autoindex.c> Options -Indexes </IfModule> <IfModule mod_negotiation.c> Options -MultiViews </IfModule> <IfModule mod_php5.c> # php_value memory_limit 256M # php_value max_execution_time 120 # php_value upload_max_filesize 20M php_flag phar.readonly off php_flag magic_quotes_gpc off php_flag session.auto_start off php_flag suhosin.session.cryptua off php_flag zend.ze1_compatibility_mode off php_value always_populate_raw_post_data -1 </IfModule> # AddType x-mapp-php5 .php # AddHandler x-mapp-php5 .php <IfModule mod_headers.c> Header append X-Frame-Options SAMEORIGIN </IfModule>  
      Für Ideen und Vorschläge wäre ich wie immer sehr dankbar
×
×
  • Create New...