3
votes

Comment rediriger l'adresse IP HTTPS vers le domaine

J'ai un site Web asp.net hébergé sur IIS 8.5 et j'utilise la règle suivante pour rediriger tout le trafic vers HTTPS:

Your connection is not private
Attackers might be trying to steal your information from 192.168.0.3 (for example, passwords, messages, or credit cards). Learn more
NET::ERR_CERT_COMMON_NAME_INVALID

Cela ne fonctionne pas lorsqu'un utilisateur accède au site en utilisant https://192.168.0.3

<rule name="HTTP/S to HTTPS Redirect" enabled="true" stopProcessing="true">
    <match url="(.*)" />
    <conditions logicalGrouping="MatchAll">
        <add input="{SERVER_PORT_SECURE}" pattern="^0$" />
    </conditions>
    <action type="Redirect" url="https://example.com{REQUEST_URI}" redirectType="Temporary" />
</rule>

Le SSL installé est pour le domaine example.com et il semble que la demande n'atteigne pas IIS donc je n'avez aucun contrôle dessus ....? Je n'ai pas de contrôle sur l'utilisateur pour le forcer à utiliser l'url du domaine.

Comment rediriger https: /192.168.0.3 vers https: // exemple. com ?


2 commentaires

Vous avez besoin d'une condition pour vérifier {HTTP HOST} .


Pouvez-vous suggérer comment faire cela car la condition «Port non sécurisé» serait remplie et aucune redirection d'URL n'aura lieu. Je dois en quelque sorte ajouter une condition de redirection si l'hôte est IP et sécurisé, puis rediriger vers https: // domaine


3 Réponses :


4
votes

Essayer de sécuriser SSL une URL IP locale se terminera toujours par une erreur de certificat AFAIK

Lisez ceci pour en savoir plus: https://security.stackexchange.com / questions / 103524 / permet-de-crypter-pour-les-sites-intranet

Modifier: je ne sais pas grand-chose sur IIS mais j'ai trouvé ceci à ce sujet, cela vous aidera probablement à résoudre ceci: https://blogs.msdn.microsoft.com/robert_mcmurray/2013/11/15 / how-to-trust-the-iis-express-auto-signed-certificate /


3 commentaires

Je pense que vous avez raison, même Facebook n'a pas de redirection pour https://157.240.22.35 vers https://facebook.com . Idem avec google https://172.217.5.110/


Le fait est qu’un fournisseur de certificats de confiance ne peut pas vérifier la validation de votre domaine local, car il ne peut pas l’atteindre via un DNS public. La seule véritable option à laquelle je puisse penser est d'installer le ou les certificats en tant que certificats de confiance sur la ou les machines des utilisateurs. Mais là encore, IIS n'est pas mon domaine. Bonne apparence!


@VaibhavGarg aucune de ces adresses IP n'est privée et n'est donc pas pertinente. Vous pouvez certainement mettre des certificats sur des adresses IP, mais pas des certificats privés, par exemple 1.1.1.1 .



-1
votes

Ce que vous pouvez faire, c'est créer un autre site Web dans IIS et y associer l'adresse IP. Ensuite, dans ce site Web, créez une seule page Default.aspx avec une redirection vers le domaine correct.

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="Redirect" stopProcessing="true">
          <match url="(.*)" />
          <action type="Redirect" redirectType="Permanent" url="https://example.com" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>

Ou simplement un code web.config > fichier avec la réécriture d'url

<%@ Page Language="C#" %>
<%
    Response.Redirect("https://example.com");
%>


2 commentaires

J'ai essayé cela et il semble que le navigateur s'arrête juste dès qu'il obtient le certificat du domaine qui ne correspond pas à l'URL basée sur IP entrée à l'origine, donc IIS n'a pas la possibilité de rediriger ... du moins c'est ce que je comprends


Cela ne fonctionnera pas car vous ne pouvez pas servir un certificat valide sur l'adresse IP privée sans modifier le magasin de certificats dans chaque navigateur qui se connecte à l'avance.



1
votes

Étant donné que l'adresse IP privée HTTPS n'aurait jamais fonctionné (vous ne pouvez pas obtenir un certificat valide pour cela), je suppose que vous êtes ici parce que vous avez une redirection globale de http: //192.168. 0.3 à https://192.168.0.3 . Corrigez simplement cette redirection pour qu'elle passe de http://192.168.0.3 directement à https://example.com .


3 commentaires

Oui, je l'ai déjà fait. l'IP 192 n'est qu'un exemple. La vraie IP est pour un site de production accessible au public. Le problème principal est donc que https: // IP n'atteint pas IIS donc je n'ai aucun contrôle sur sa redirection. Peut-être que quelque chose au niveau du système d'exploitation peut être fait ...


S'il n'atteint pas le site en raison d'une erreur de certificat, vous devez obtenir un certificat et l'installer.


Cette réponse m'a fait réaliser à quel point je suis stupide de jouer avec le fichier .htaccess. +1