web-dev-qa-db-fra.com

Forcer HTTPS à l'aide de la redirection 301 sur IIS7 obtient une erreur 401.1

J'ai un site qui utilise une URL d'exécution dans l'emplacement de page d'erreur 403.4 qui appelle une page nommée forcessl.aspx. Voici le contenu du fichier:

strWork = Remplacer (strQUERY_STRING, "http", "https") strWork = Remplacer (strWork, "403;", "") strWork = Remplacer (strWork, "80", "") strSecureURL = strWork Response.Write (strSecureURL) Response.Redirect (strSecureURL) Catch ex en tant qu'exception End Try End End si%>

Ce site particulier reçoit une erreur 401.1 si https:// n'est pas ajouté à l'URL. J'ai plusieurs autres sites utilisant la même méthode qui fonctionnent bien et celui-ci reflète ceux de toutes les manières que je peux dire (autorisations de dossier, etc.). Ce nouveau site est juste un sous-domaine du même domaine que les autres sites utilisent. Le domaine principal dispose d'un certificat SSL générique.

De la documentation de Microsoft, voici la signification des erreurs:

403.4

Erreur HTTP 403.4 - Interdit: SSL est requis pour afficher cette ressource

401.1

Erreur HTTP 401.1 - Non autorisé: l'accès est refusé en raison d'informations d'identification incorrectes

2
Phil

J'ai finalement trouvé la solution à ce problème.

Lors de la configuration du site, j'avais tout fait, mais je l'avais mis dans les liaisons pour le domaine. Je n'avais pas ajouté le sous-domaine.mysite.com aux liaisons pour le port 80.

J'avais oublié cela car, depuis que je forçais tout via le port 443 avec une réécriture, je ne pensais pas avoir besoin de l'ajouter. En cherchant la solution, j'ai constaté que tous les autres sous-domaines étaient dans les liaisons et que celui-ci ne l'était pas.

Une simple petite chose a causé 6 mois de frustration. Ce qui était étrange, c’est que cela fonctionnait pour certaines personnes, mais pas pour d’autres si vous tentiez d’y accéder via HTTPS.

Toujours entrain d'apprendre.

1
Phil