2012-06-07 14 views
7

ProblemaRedirect a 'www' prima requisito SSL

Al momento ho il problema dove https://domain.com non reindirizza al https://www.domain.com e mostra un certificato SSL non attendibile.

questo è legato a cui è una soluzione ruby-on-rails redirect to 'www' before force_ssl

Domanda

Esiste un modo per reindirizzare al dominio www prima dei calci requisito SSL a?

Sto usando PHP.

+0

possibile duplicato di [Reindirizzamento https a non www e http a www] (http://stackoverflow.com/questions/10725357/redirect-https-to-non-www-and-http-to-www) – Bruno

+0

@Bruno Guardato in molti casi ma nessuno definisce la risposta data da deceze – williamcarswell

+0

Non sai cosa intendi.Potrei più o meno copiare/incollare la risposta che ho dato all'altra domanda per rispondere alla tua. (Più o meno lo stesso di quello che ha detto in effetti: l'unica cosa che non dice è che potresti ottenere quello che vuoi avendo un certificato valido per entrambi.) Ci sono una serie di domande su questo argomento. Ecco un altro su SF: http://serverfault.com/a/360985/47187 – Bruno

risposta

18

HTTPS è HTTP su TLS/SSL (vedere RFC 2818), che prima stabilisce la connessione SSL/TLS prima che venga inviato qualsiasi traffico HTTP. Qualsiasi reindirizzamento (tramite mod_rewrite, codice PHP personalizzato o altro) si applica sempre dopo aver stabilito la connessione SSL/TLS.

Non farlo sarebbe effettivamente un problema di sicurezza, poiché un utente malintenzionato potrebbe riscrivere e reindirizzare il client prima che il certificato sia stato verificato.

Se si desidera reindirizzare https://domain.com-https://www.domain.com, il certificato ottenuto per https://domain.com deve essere valido per domain.com (e poi, il certificato ottenuto per https://www.domain.com deve essere valido per www.domain.com).

(Si potrebbe utilizzare due diversi certificati con Name Server Indicazione se i due padroni di casa sono serviti sullo stesso indirizzo IP, ma questo è piuttosto contorta.)

Il modo più semplice sarebbe quella di ottenere un certificato che è valida per entrambi domain.com e www.domain.com. Questo può essere fatto usando un singolo certificato con più voci di Nome alternativo soggetto. La maggior parte delle autorità competenti dovrebbe essere in grado di emettere tali certificati. Alcuni lo fanno senza costi aggiuntivi.

1

Una risposta di reindirizzamento viene emessa tramite il protocollo HTTP. Per ricevere tale risposta/comando, il client deve prima stabilire una connessione HTTP. Se il client sta tentando di stabilire una connessione HTTP_S_, allora la negoziazione SSL deve essere completata per prima.

In altre parole, n. L'URL https://domain.com non è valido per la tua app. Nessun cliente dovrebbe nemmeno sapere di questo particolare indirizzo e quindi non dovrebbe tentare di accedervi. Dovresti evitare di dare questo URL ovunque, in modo che i client non provino ad accedervi. Infatti, non sembra che tu voglia eseguire un server HTTPS per quel dominio, quindi dovresti spegnerlo, in modo che i client non possano connettersi a domain.com tramite HTTPS.

0

La soluzione migliore che ho trovato è semplicemente di acquistare un nuovo certificato SSL con nomi alternativi soggetto in modo da poter avere www e non www nello stesso certificato ed entrambi sono validi. In questo modo è possibile reindirizzare in modo sicuro https://www a https: // in modo trasparente e senza errori di certificato.

Problemi correlati