È possibile configurare siti in IIS per richiedere un certificato, ma A) genera un errore se qualcuno non visita con https e B) richiede a tutte le pagine di utilizzare https. Quindi, che non funzionerà. È possibile inserire un filtro su IIS che verifica tutte le richieste e le reindirizza come chiamate https se si trovano nell'elenco di crittografia. Lo svantaggio ovvio qui è la necessità di aggiornare l'elenco di pagine ogni volta che viene aggiunta una nuova pagina (ad esempio da un file o database XML) e riavviare il filtro.
Penso che tu sia probabilmente corretto nella creazione di codice nelle pagine che richiedono https che reindirizzano a una versione https se arrivano via http. Per quanto riguarda l'errore cert, è possibile reindirizzare con un percorso completo (che include www) anziché un percorso relativo per risolvere questo problema. Se avete domande su come rilevare se la chiamata utilizza https OPPURE come ottenere il percorso completo della richiesta corrente, fatemelo sapere. Entrambi sono abbastanza semplici ma ho codice di esempio se ne hai bisogno.
UPDATE - Josh, i certificati che gestiscono più sottodomini sono chiamati caratteri jolly. Il problema è che sono un po 'più costosi di quelli standard.
UPDATE 2: Un'altra cosa da considerare è l'utilizzo di una pagina master o di una classe derivata per le pagine che richiedono SSL. In questo modo, invece di duplicare il codice in ogni pagina, puoi semplicemente dichiararlo come tipo SSLPage (o usare la pagina Master corrispondente) e far gestire al reindirizzatore la classe Master/Parent. Ancora una volta, dovrai eseguire qualche elaborazione URL se segui questo approccio, ma è piuttosto banale.
fonte
2009-04-03 13:35:42
Sì, prendo lo stesso approccio. Ho una chiave EnableSsl nel mio file web.config che posso spegnere e accendere a seconda dell'ambiente in cui mi trovo. Ho anche una chiave SecurePages delimitata da pipe che posso facilmente aggiungere/rimuovere. –
Un altro modo invece di delimitare Pipe (supponendo che non è necessario modificare questo dopo la distribuzione) sarebbe quello di definire una pagina di base che esegue il controllo, quindi qualsiasi pagina che si desidera garantire sicuro erediterà sempre da quella pagina. Potresti anche usare gli attributi. – JoshBerke
Sì, ma preferirei mantenere un'unica pagina base e mi piacerebbe poter impostare dinamicamente le pagine su ssl o no senza ricompilare. –