Question

Je m'arrache les cheveux sur ce qui devrait être un problème incroyablement simple. Nous exécutons WebSphere IHS (Apache) via un F5 BigIP. BigIP fait la traduction https pour nous. Notre URL (modifiée pour le Web, non valide) est https://superniftyserver.com/lawson/portal .

Lorsque quelqu'un tape juste cela sans la barre oblique après le portail, Apache suppose que " portal " être un fichier et non un répertoire. Lorsque Apache découvre de quoi il s'agit, il envoie la redirection permanente 301. Mais comme Apache ne connaît que http, il envoie l’URL sous la forme http://superniftyserver.com/lawson/portal/ qui crée ensuite des problèmes.

J'ai donc essayé de modifier httpd.conf au niveau du serveur pour mod_rewrite. C'est l'une des dizaines de combinaisons que j'ai essayées.

RewriteEngine on RewriteRule ^ / lawson / portal (. *) / Lawson / portal / $ 1

j'ai aussi essayé RewriteRule ^ / lawson / portal $ / lawson / portal /

Parmi beaucoup d'autres choses ... Qu'est-ce qui me manque?

Était-ce utile?

La solution

Si vous ne pouvez pas obtenir de réponse sur la syntaxe RewriteRule, voici deux autres options: rédigez une iRule personnalisée sur BigIp (voir F5 DevCentral ) qui recherche 301 réponses et les convertit au format SSL; laissez l'URL passer sur votre serveur WebSphere et effectuez une redirection par programme qui envoie HTTPS. Cependant, étant donné que F5 met fin à la connexion SSL, vous devez définir un en-tête personnalisé que vous configurez (voir PQ86347 ) afin que Java request.getScheme () fonctionne comme prévu.

Autres conseils

Fixé!

SOL6912: Configuration d'un profil HTTP pour réécrire les URL afin que les redirections à partir d'un serveur HTTP spécifient le protocole HTTPS

Mise à jour le: 8/7/07 12:00

Un serveur virtuel ClientSSL est généralement configuré pour accepter les connexions HTTPS d'un client, déchiffrer la session SSL et envoyer la demande HTTP non chiffrée au serveur Web.

Lorsqu'un URI demandé n'inclut pas de barre oblique finale (une barre oblique, telle que / à la fin de l'URI), certains serveurs Web génèrent une redirection de courtoisie. Sans une barre oblique finale, le serveur Web traitera d'abord la ressource spécifiée dans l'URI comme un fichier. Si le fichier est introuvable, le serveur Web peut rechercher un répertoire portant le même nom et, le cas échéant, renvoyer une réponse de redirection HTTP 302 au client avec une barre oblique de fin. La redirection sera renvoyée au client en mode HTTP plutôt qu'en HTTPS, ce qui entraînera l'échec de la session SSL.

Voici un exemple de réponse d'une redirection HTTP 302 à l'échec de la session SSL:

& # 183; Pour demander une session SSL, un utilisateur saisit https://www.f5.com/stuff sans slash final.

& # 183; Le navigateur client envoie une demande SSL au serveur virtuel ClientSSL, qui réside sur le système BIG-IP LTM.

& # 183; Le système BIG-IP LTM décrypte ensuite la demande et envoie une commande GET / stuff au serveur Web.

& # 183; Étant donné que le fichier / stuff n'existe pas sur le serveur Web, mais qu'il existe un répertoire / stuff / virtual, le serveur Web envoie une réponse de redirection HTTP 302 pour le répertoire, mais ajoute une barre oblique finale à la ressource. Lorsque le serveur Web envoie la réponse de redirection HTTP 302, il spécifie HTTP (et non HTTPS).

& # 183; Lorsque le client reçoit la réponse de redirection HTTP 302, il envoie une nouvelle demande au serveur virtuel LTM BIG-IP qui spécifie HTTP (et non HTTPS). Par conséquent, la connexion SSL échoue.

Configuration d'un profil HTTP pour réécrire les URL

Dans BIG-IP LTM version 9.x, vous pouvez configurer un profil HTTP pour réécrire les URL afin que les redirections à partir d'un serveur HTTP spécifient le protocole HTTPS. Pour ce faire, procédez comme suit:

  1. Connectez-vous à l'utilitaire de configuration.

  2. Cliquez sur Trafic local.

  3. Cliquez sur Profils.

  4. Cliquez sur le bouton Créer.

  5. Saisissez un nom pour le profil.

  6. Choisissez http dans le menu déroulant Profil du parent.

  7. Sous Paramètres, définissez Rediriger la réécriture sur Tous, Correspondance ou Nœuds, en fonction de votre configuration

Par exemple:

o Choisissez Tous pour réécrire les redirections HTTP 301, 302, 303, 305 ou 307 vers HTTPS

o Choisissez Correspondance pour réécrire les redirections lorsque les composants de chemin de requête et d'URI de requête de la requête et de la redirection sont identiques (à l'exception de la barre oblique finale)

o Choisissez un nœud pour réécrire les redirections lorsque l'URI de redirection contient une adresse IP de nœud au lieu d'un nom d'hôte, et vous souhaitez que le système la remplace par l'adresse du serveur virtuel

  1. Cliquez sur Terminé.

Vous devez maintenant associer le nouveau profil HTTP au serveur virtuel ClientSSL.

Essayez ceci:

# Trailing slash problem
RewriteCond    %{DOCUMENT_ROOT}%{REQUEST_FILENAME} -d
RewriteRule    ^(.+[^/])$           https://<t:sitename/>$1/ [redirect,last]
LoadModule rewrite_module                modules/mod_rewrite.so

assurez-vous que cette ligne se trouve quelque part dans votre fichier httpd.conf

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top