1 votes

IIS 8.5 (Win 2012R2) + Redirection automatique vers HTTPS en cas de liaison ajoutée

J'essaie de comprendre un comportement étrange que je n'ai jamais vu auparavant.

J'ai un site. Les liaisons HTTP par nom d'hôte sur le port 80 sont configurées. Le site est accessible par HTTP.

Lorsque j'ajoute une liaison HTTPS (j'ai essayé avec et sans SNI), je peux accéder au site par HTTPS. Mais, lorsque j'essaie d'accéder au site par HTTP, j'obtiens une redirection 307 vers HTTPS.

Je n'ai pas ajouté de règles de redirection IIS ni de règles URL Rewrite. De plus, si je change le port HTTPS pour un autre port, par exemple 44300, les redirections depuis HTTP (port 80) sont mises à jour pour rediriger vers le port non standard configuré.

En fait, il s'agit d'un site .NET Core. Y a-t-il une chance que l'application puisse vérifier les liens IIS et ensuite faire une redirection correcte ici ?

Merci pour toutes vos idées astucieuses !

Editar:

Je trouve une référence à : Microsoft.AspNetCore.HttpsPolicy dans un fichier json. Je n'ai pas le code source.

De même, si je supprime la racine du site et que j'ajoute un fichier index.htm statique, la redirection magique ne se produit pas. Donc, quelque chose avec l'application ASP.NET Core, il semble lire le numéro de port à partir de la configuration IIS, ce qui me semble câblé.

0 votes

Vérifiez le fichier web.config, peut-être que quelque chose a ajouté une règle dans le fichier pendant la publication.

0 votes

Non, il n'y a pas de règles. Note Il y a aussi des changements automatiques si le port est changé de 443 à 44300 ou similaire...

2voto

mqsoh Points 1833

.NET Core contient une redirection HTTP vers HTTPS par défaut, qui peut être activée accidentellement lorsqu'elle détecte que la condition est remplie. Donc, si ce n'est pas ce que vous souhaitiez, trouvez les développeurs pour désactiver complètement cette fonction (supprimez la fonction UseHttpsRedirection du code).

Référence

0 votes

Oui, c'est ce que j'ai compris après avoir remplacé l'application .NET Core par une page statique. Je suis toujours curieux de savoir comment l'application peut déterminer le port personnalisé (non standard) à partir de la configuration des liaisons IIS. L'application utilisera HTTPS à l'avenir, mais actuellement (pendant le déploiement/test), le port HTTPS n'est pas ouvert de l'extérieur. Je peux comprendre l'intérêt d'avoir la redirection dans le code. Mais j'ai tendance à préférer avoir des paramètres spécifiques à l'hébergement dans la configuration.

1 votes

@Sam peut facilement apprendre les paramètres IIS car le module ASP.NET Core est là pour l'aider.

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