710 messaggi dal 13 novembre 2008
Contributi
ciao, ho un web site https in iis 7.5, windows server 2008 R2, server dedicato, con binding sulla porta 8443; avrei bisogno di fare un rewrite di questo genere:

- tutte le richieste a questo website, non https, devono essere ridirezionate a https

-tutte le richieste a questo website, su altre porte, devono essere ridirezionate alla porta 8443

per ora ho il seguente

<rewrite>
<rewriteMaps>
</rewriteMaps>
<rules>
<rule name="HTTP to HTTPS redirect" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}" redirectType="SeeOther" />
</rule>
</rules>
</rewrite>

che non va

grazie
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao,
la regola che hai creato dovrebbe andar bene. Che succede, esattamente? Il browser ti fa continuare a navigare su http?

Ho provato a rifarla ma mi sembra molto simile alla tua
<rule name="Ridirezione" stopProcessing="true">
    <match url=".*" />
    <conditions logicalGrouping="MatchAny">
        <add input="{HTTPS}" pattern="off" />
        <add input="{SERVER_PORT}" pattern="^8443$" negate="true" />
    </conditions>
    <action type="Redirect" url="https://{HTTP_HOST}:8443/{R:0}" />
</rule>

Qui ho incluso anche il reindirizzamento in base alla porta, se fosse diversa da 8443.
In realtà non ha alcun beneficio perché IIS non si trova in ascolto su una porta qualsiasi. Se provassi a visitare il sito da una porta a caso...
http://localhost:12345/

...il browser ti darebbe un errore perché sulla macchina server non c'è alcun servizio in ascolto su quella porta.
Allo stesso modo, se provassi a visitare il sito sulla porta 80 in modalità https, avrei comunque un errore dal browser perché IIS normalmente non adotta il protocollo SSL quando si raggiunge un sito dalla porta 80.

A meno che il caso non sia più complesso, secondo me ti è sufficiente controllare se lo schema è HTTPS o no.

ciao,
Moreno

Enjoy learning and just keep making
710 messaggi dal 13 novembre 2008
Contributi
ciao, proverò la tua, con la mia succede questo:
la regola non reindirizza, e il browser da un avviso di accesso non protetto da SSL con richiesta di proseguimento

in realtà la situazione è più complessa, il server è configurato in questo modo:

su IIS ho tre siti (sottodomini con DNS recordA su stesso IP, che è uno solo), con binding sulle porte 80, 443, 8443

per la 80 non ho problemi
la 8443 è una intranet, con accesso ai soli utenti della ditta
la 443 è una applicazione, con accesso anche esterno

la 8443 e 443 sono state scambiate tra loro di recente

il problema è che non vorrei che un utente esterno digiti erroneamente la porta 8443 (invece di inserire il link senza indicazione della porta e andare correttamente sulla 443 perchè https) e si trovi davanti la maschera di accesso della intranet; vorrei anche che un utente che scrive http, venga reindirizzato a https, evitando messaggi fastidiosi.
Per ora ho risolto verificando l'host name e quindi reindirizzando sulla porta corretta, ma non è propriamente il massimo, mi sembra corretto invece agire a livello di IIS

grazie

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.