12
votes

Apache https à la redirection HTTPS

Nous avons un serveur client hébergeant notre application Web à l'aide de Apache 2.2 & Tomcat 6 dans Rhel. J'ai configuré la règle Apache Re-Write pour HTTP à la redirection HTTPS et cela fonctionne bien. Nous avons deux noms DNS utilisés pour accéder à la même application. Test1.com et test2.com. Je souhaite que tous les utilisateurs essayent d'accéder à http: // test1.com ou https: // test1.com à https: // test2.com. Comme mentionné, http: // test1.com à https: // test2.com La redirection fonctionne bien. Je ne suis pas capable d'implémenter https://test1.com à https://test2.com .

J'ai essayé des hôtes virtuels, Serveralias, NomVirtualHost, mais rien ne fonctionne. Toute suggestion si nous pouvons gérer cela via une réécriture aiderait. Tous les autres pointeurs pouvant conduire à la résolution de cette question seront appréciés.

merci


2 commentaires

Comment faites-vous actuellement la redirection pour http://test1.com à https://test2.com ?


J'utilise la règle de réécriture de réécriture comme suit: rewriteEngine sur rewriteCond% {https} de rewriterule ^ (. *) $ Https: // test2.com 1 $ [r = 301]


4 Réponses :


10
votes

Essayez ce qui suit: xxx

si vous avez un pour les deux : 80 et : 443 < / code>, cette redirection devrait aller dans les deux configurations.


3 commentaires

Thx pour la suggestion, mais cela n'a pas fonctionné. Nous avons SSL CERT pour 2ND Domaine mais pas pour 1st One.So Lorsque j'accède au 1er domaine à l'aide de HTTPS, il lance un avertissement de sécurité.Je souhaite rediriger vers la 2e Domaine, peu importe HTTP ou HTTPS.


@Noman Amir: C'est AFaik non possible car la redirection est effectuée sur la couche HTTP, tandis que SSL fonctionne sur le calque ci-dessous. Par conséquent, avant que la redirection puisse être effectuée, la couche SSL doit avoir établi une connexion - et il en résulte l'avertissement de sécurité.


@ROBERT: Même si c'est décevant, vraiment merci pour l'info! Y a-t-il une possibilité que je puisse rediriger après l'avertissement de sécurité?



0
votes

J'ai eu site1 avec https (certificat) et site2 avec http (sans certificat), tous deux sur la même adresse IP (hôtes virtuels. Ensuite, j'ai noté que Site2 n'était pas indexé de manière incorrecte par Google pour HTTPS, à l'aide du contenu de Site1.

tandis que pour la réécriture d'écoute

  • pour le port 80, la redirection doit Asseyez-vous dans le .htaccess pour SITE2,
  • pour le port 443, la redirection doit Asseyez-vous dans le .htaccess pour SITE1.

    Mais alors la discrimination ne passe plus par port, mais par http_host (nom DNS).

    pour moi, site1 = shop.smartgart.com, site2 = one0.com. Je mets ceci dans Site1's .htaccess: xxx

    c'est: si le Http_Host étant géré n'est pas Site1, puis redirige sur Site1, à l'aide du suffixe fourni (1 $).

    fonctionne pour moi!


0 commentaires

8
votes

J'ai résolu ce problème avec Redirection, mais je devais configurer un hôte virtuel pour rediriger HTTPS avec tous les paramètres SSL nécessaires.

<VirtualHost *:80>
    ServerName test1.com
    Redirect "/" "https://test2.com/"
</VirtualHost>

<VirtualHost *:443>
    ServerName test1.com
    Redirect "/" "https://test2.com/"
    SSLEngine on
    # SSLProxyEngine On
    SSLCertificateFile /path/site.crt
    SSLCertificateKeyFile /path/site.key
    SSLCertificateChainFile /path/DigiCertCA.crt
    SSLProtocol ALL -SSLv2 -SSLv3
    SSLHonorCipherOrder on
    SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
</VirtualHost>

<VirtualHost *:443>
    ServerName test2.com
    ...
    SSLEngine on
    # SSLProxyEngine On
    SSLCertificateFile /path/site.crt
    SSLCertificateKeyFile /path/site.key
    SSLCertificateChainFile /path/DigiCertCA.crt
    SSLProtocol ALL -SSLv2 -SSLv3
    SSLHonorCipherOrder on
    SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
</VirtualHost>


3 commentaires

S'il vous plaît marquer cette réponse comme vrai. Ça marche absolument.


C'est une réponse correcte. À mon avis, vous ne pouvez pas rediriger https sans certificat valide pour les deux sites avec de simples Apach


Bien que je conviens que cela est vrai, il n'est pas applicable dans tous les cas. Dans mon cas, nous n'utilisons plus SITE2.COM et souhaitons que tout trafic légitime soit redirigé vers site1.com . Nous ne voulons pas avoir à maintenir un certificat pour site2.com juste pour une redirection pour travailler.



-1
votes

J'ai résolu ce problème avec plusieurs redirections, pas la même chose que la réponse de @a Kunin. Parce que j'utilise différents certificats pour les deux sites, et cela signalera une erreur de certificat si je viens de rediriger de https://test1.com à https://test2.com .

Ma solution est la suivante: https://test1.com -> http://test1.com -> https: // test2. com xxx


1 commentaires

L'étape entre les deux est complètement inutile, il ne perturbe que les demandes cryptées. Et la pire chose, l'utilisateur ne remarque même pas que sa connexion n'a pas été cryptée pour une étape.