Utilizza mod_rewrite per Imitare Host Virtuali SSL?
-
08-06-2019 - |
Domanda
Qual è il modo migliore in modo trasparente riscrivere l'URL su una connessione SSL con Apache 2.2?
Apache 2 non supporta in modo nativo multiple name-based virtual host per una connessione SSL e ho sentito che il mod_rewrite può aiutare con questo.Vorrei fare qualcosa di simile a questo:
Ho impostato il server in modo che i siti possono essere raggiunti da
https://secure.example.com/dbadmin
ma mi piacerebbe avere questo come https://dbadmin.example.com
Come faccio a impostarlo in modo che la regola di Riscrittura riscrivere dbadmin.example.com per secure.example.com/dbadmin ma senza visualizzare la riscrittura del cliente barra degli indirizzi (es.il cliente rimane solo vedere dbadmin.example.com), tutto https?
Soluzione
Configurare un singolo VirtualHost per servire sia secure.example.com e dbadmin.example.com (facendo il solo *:443 VirtualHost raggiunge questo).È quindi possibile utilizzare mod_rewrite per regolare l'URI della richiesta di dbadmin.example.com:
<VirtualHost *:443>
ServerName secure.example.com
ServerAlias dbadmin.example.com
RewriteEngine on
RewriteCond %{SERVER_NAME} dbadmin.example.com
RewriteRule !/dbadmin(.*)$ /dbadmin$1
</VirtualHost>
Il certificato deve essere valido per entrambi secure.example.com e dbadmin.example.com.Può essere un certificato con caratteri jolly, come indicato da Terry Lorber, oppure è possibile utilizzare il subjectAltName campo di aggiungere altri nomi di host.
Se hai problemi, prima impostare sulla <VirtualHost *>
e verificare che funziona senza SSL.La connessione SSL e certificato è a un livello di complessità che è possibile impostare dopo l'URI riscrittura sta lavorando.
Altri suggerimenti
A meno che il vostro certificato SSL è il "jolly" o multi-sito, tipo, quindi non credo che questo sarà il lavoro.La riscrittura verrà visualizzato nel browser e il nome nella barra di indirizzo deve essere valido contro il certificato, o il tuo blog verrà visualizzato un errore di sicurezza (che possono sempre accettare e continuare, ma che non suona come quello che vuoi).
Più qui.
C'è apache mod_rewrite, o si potrebbe impostare apache in diretta https://dbadmin.example.com per path/to/esempio.com/dbadmin sul server
<VirtualHost *>
ServerName subdomain.domain.com
DocumentRoot /home/httpd/htdocs/subdomain/
</VirtualHost>