2017-09-11 7 views
0

Aucune des réponses que j'ai trouvées à des questions comme celle-ci (notamment this one) ne fonctionne pour moi, alors c'est parti.Rediriger vers le nom de domaine complet dans IIS ne fonctionne pas

Nous exécutons IIS 8 sur Windows Server 2012 R2. Nous avons un certificat générique (* .mondomaine.com) installé sur le serveur. Sur le site Web par défaut, nous avons une liaison unique pour accepter les demandes https entrantes sur le port 443. J'ai un deuxième site Web avec une seule liaison pour accepter les demandes http entrantes sur le port 80.

Sur ce dernier site Web Nous avons créé une règle de réécriture d'URL pour rediriger tout le trafic non-HTTP entrant vers https://myserver.mydomain.com{REQUEST_URI}, et cela fonctionne parfaitement. Si je navigue vers http://myserver.mydomain.com/homepage ou http://myserver/homepage, je suis redirigé avec succès vers la version HTTPS du site avec le nom de domaine complet inclus et donc il se charge très bien.

Si je navigue vers https://myserver.mydomain.com/homepage, le site se charge également parfaitement.

Cependant, j'essaie de créer une autre règle de réécriture d'URL sur le site Web par défaut afin que les demandes à https://myserver/homepage (Remarque: HTTPS mais le nom de domaine complet est omis) sont redirigés vers https://myserver.mydomain.com/homepage. La raison en est que le certificat SSL est uniquement mis en correspondance si le domaine complet est inclus. En l'état, si j'entre https://myserver/homepage, j'obtiens un avertissement de sécurité (NET::ERR_CERT_COMMON_NAME_INVALID).

J'ai créé la règle qui, selon moi, devrait fonctionner, en fonction de la réponse à laquelle j'ai fait référence ci-dessus, mais cela ne fonctionne pas et je ne sais pas pourquoi. Ma règle ressemble à ceci:

<rewrite> 
     <rules> 
      <rule name="Redirect to FQDN" enabled="true" patternSyntax="ECMAScript" stopProcessing="true"> 
       <match url="(.*)" /> 
       <conditions> 
        <add input="{HTTP_HOST}" pattern="^myserver$" /> 
        <add input="{HTTPS}" pattern="^ON$" /> 
       </conditions> 
       <action type="Rewrite" url="https://myserver.mydomain.com/{R:1}" /> 
      </rule> 
     </rules> 
    </rewrite> 

Même avec cette règle en place et a permis, quand je passe en revue à https://myserver/homepage je reçois le message de sécurité. Qu'est-ce que je fais de mal avec cette règle?

Répondre

0

Le problème est que vous avez SSL seulement pour *.mydomain.com. Et lorsque vous accédez à https://myserver il retournera une erreur de certificat parce que votre CERT n'est pas valide pour ce domaine.

Pour une meilleure compréhension des étapes lors de la connexion SSL: enter image description here

Dans votre cas, le problème se situe entre l'étape 2 et 3

+0

Je comprends la non-concordance entre l'URL demandée et le certificat SSL, mais je J'essaie de gérer cela en ayant des requêtes qui ne contiennent pas le domaine transmis à l'URL équivalente avec le domaine inclus afin qu'ils correspondent au certificat. Voulez-vous dire que ce n'est pas possible si la demande arrive via HTTPS? –