1 votes

Redirection automatique de http vers https avec plusieurs domaines - fichiers référencés dans le code

Je sais qu'il y a des questions en double aquí y aquí mais cela n'a pas résolu mes problèmes.

Lorsque localhost est saisi dans la barre d'adresse du navigateur, il est correctement redirigé vers https://localhost mais tous les appels à l'intérieur de mon code pour charger des fichiers avec http ne sont pas redirigées ou réécrites en https . Par exemple :

<link rel="stylesheet" type="text/css" href="http://static/css/colwidth.min.css">

J'ai essayé Redirect permanent / https://localhost/ dans les fichiers de configuration d'Apache dans le répertoire VirtualHost et j'ai également essayé RewriteRule con .htaccess

En Firefox L'erreur que j'obtiens est la suivante :

Blocage du chargement d'un contenu actif mixte " http://static/css/colwidth.min.css "

J'apprécierais que l'on m'aide à comprendre comment procéder avec ambos Configuration d'Apache et .htaccess (Je sais que .htaccess n'est pas la méthode préférée - mais j'aimerais quand même comprendre pourquoi elle ne fonctionne pas)

http :

<VirtualHost *:80>
    ServerAdmin me@localhost
    DocumentRoot "D:/Website/path/to/root"
    ServerName localhost
    Redirect permanent / https://localhost/

    <Directory "D:/Website/path/to/root">
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Require ip 127.0.0.1
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin me@localhost
    DocumentRoot "D:/Website/path/to/root"
    ServerName static
    Redirect permanent / https://static/

    <Directory "D:/Website/path/to/root">
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Require ip 127.0.0.1
    </Directory>
</VirtualHost>

<VirtualHost *:443>
    DocumentRoot "D:/Website/path/to/root"
    ServerName localhost:443
    ServerAdmin me@localhost
    ErrorLog "c:/xampp/apache/logs/error.log"
    TransferLog "c:/xampp/apache/logs/access.log"
    <Directory "D:/Website/path/to/root">
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Require ip 127.0.0.1
    </Directory>

    SSLEngine on

    SSLCertificateFile "c:/xampp/apache/bin/wtr.cert"
    SSLCertificateKeyFile "c:/xampp/apache/bin/wtr.key"

    <FilesMatch "\.(cgi|shtml|phtml|php)$">
        SSLOptions +StdEnvVars
    </FilesMatch>
    <Directory "c:/xampp/apache/cgi-bin">
        SSLOptions +StdEnvVars
    </Directory>

    CustomLog "c:/xampp/apache/logs/ssl_request.log" \
              "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>                                  

https :

<VirtualHost *:443>
    DocumentRoot "D:/Website/path/to/root"
    ServerName static:443
    ServerAdmin me@localhost
    ErrorLog "c:/xampp/apache/logs/error.log"
    TransferLog "c:/xampp/apache/logs/access.log"

    <Directory "D:/Website/path/to/root">
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Require ip 127.0.0.1
    </Directory>

    SSLEngine on

    SSLCertificateFile "c:/xampp/apache/bin/static.cert"
    SSLCertificateKeyFile "c:/xampp/apache/bin/static.key"
    <FilesMatch "\.(cgi|shtml|phtml|php)$">
        SSLOptions +StdEnvVars
    </FilesMatch>
    <Directory "c:/xampp/apache/cgi-bin">
        SSLOptions +StdEnvVars
    </Directory>

    CustomLog "c:/xampp/apache/logs/ssl_request.log" \
              "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>

.htaccess

RewriteEngine On
    # For SSL
    RewriteCond %{HTTPS} !=on
    RewriteRule (.*) https://%{SERVER_NAME}/$1 [L,R=301]
    # I also tried:
    #RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}[L,R=301]

    #Rules for Versioned Static Files
    RewriteRule ^(js|js-common|css|css-common|img|img-common)/(.+)\.([0-9])+\.(js|css|php|jpg|gif|png)(.*)$ $1/$2.$4$5 [L]

    #rename invalid file and directory requests
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?redirectroot=true

6voto

MrWhite Points 11269

En Erreur Firefox C'est ce que je reçois :

C'est là le problème... le navigateur déclenche cette erreur avant la demande atteint même votre serveur, de sorte que toute tentative de redirection sur le serveur est trop tardive.

Si la page elle-même est redirigée vers https://... alors toutes les ressources référencées dans cette page doivent également utiliser l'option https://... sinon vous recevrez l'avertissement "contenu mixte" comme ci-dessus. Il s'agit d'une mesure de sécurité de base du navigateur afin d'éviter toute sécurisé les fuites de contenu sur un peu sûr (HTTP).

Au lieu d'utiliser des URL absolues (qui incluent le mot-clé schéma ) dans le code HTML, vous pouvez utiliser des URL relatives au protocole, par exemple :

<link rel="stylesheet" type="text/css" href="http://serverfault.com//static/css/colwidth.min.css">

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X