Apache: Comment puis-je rendre mon site disponible uniquement sur SSL et pas via HTTP et HTTPS?

J'ai une application web Tomcat dans un server Ubuntu . L'application Web est déployée comme ROOT . J'ai installé apache2 et via un VirtualHost J'ai pointé l'IP directement vers l'application web Tomcat. Je peux donc accéder au site via IP (et domaine) directement comme 125.20.20.50 ou example.com .

Veuillez vérifier le file ci-dessous, qui est le 000-default.conf dans \etc\apache2\sites-enabled\ .

 <VirtualHost *:80> ProxyPreserveHost On # Servers to proxy the connection, or; # List of application servers: # Usage: # ProxyPass / http://[IP Addr.]:[port]/ # ProxyPassReverse / http://[IP Addr.]:[port]/ # Example: ProxyPass / http://127.0.0.1:8080/ ProxyPassReverse / http://127.0.0.1:8080/ ServerName localhost </VirtualHost> <VirtualHost *:443> ServerAdmin webmaster@localhost DocumentRoot /opt/apache-tomcat-7.0.79/webapps/ROOT/ ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined SSLEngine On # Set the path to SSL certificatee # Usage: SSLCertificateFile /path/to/cert.pem SSLCertificateKeyFile /etc/apache2/ssl/key.key SSLCertificateFile /etc/apache2/ssl/certificatee.crt SSLCertificateChainFile /etc/apache2/ssl/STAR_xxx_com.ca-bundle ProxyPreserveHost On ProxyPass / http://localhost:8080/ ProxyPassReverse / http://localhost:8080/ ServerName localhost </VirtualHost> 

Le SSL fonctionne bien si j'ai spécifiquement utilisé https dans l'URL comme https://portal.example.com . L'affaire est que je peux toujours accéder au site sans security si je n'ai pas mentionné spécifiquement la https mais portal.example.com tapé quelque chose comme portal.example.com dans le browser.

Comment puis-je réparer cela?

3 Solutions collect form web for “Apache: Comment puis-je rendre mon site disponible uniquement sur SSL et pas via HTTP et HTTPS?”

Si je vous ai bien compris, vous voulez tous les access à http://portal.example.com/ étant réécrit à https://portal.example.com ?

Pour ce faire, il vous suffit de replace les éléments ProxyPass dans le port 80 VirtualHost par RewriteRule:

 <VirtualHost *: 80>
     RewriteEngine on
     RewriteRule ^ (. *) $ Https://portal.example.com/$1

     ServerName portal.example.com
 </ VirtualHost>

Cela devrait suffire à réécrire tout à la page HTTPS.

REMARQUE: Cela rest le rest de l'URL, ce qui signifie que http://portal.example.com/random_page devient https://portal.example.com/random_page

Si vous souhaitez simplement redirect tout access HTTP vers la page HTTPS de la racine (alors http://portal.example.com/random_page deviendra https://portal.example.com/ ), vous devez accepter la réponse de @HBruijn, car elle est beaucoup plus simple et suffisant pour ce cas.

Généralement, vous simplement redirect les users vers https à partir de l'input virtuelle HTTP virtuelle:

 <VirtualHost *:80> ServerName portal.example.com Redirect / https://portal.example.com </VirtualHost> 

Changez-vous d'abord VirtualHost vers

 <VirtualHost *:80> ServerName portal.example.com DocumentRoot /opt/apache-tomcat-7.0.79/webapps/ROOT/ Redirect /secure https://portal.example.com </VirtualHost> 

PS: ne lancez jamais votre server Web en tant que root. Utilisez un user dédié et donnez-lui des droits sur votre machine en conséquence.

  • Les redirections de domaine vers le mauvais site dans nginx, plusieurs sites dans les files de configuration
  • Exécuter Gitlab et Openproject sur un server
  • Traiter les sous-domaines de développement
  • Apache config - vhost item listé mais introuvable
  • Différence entre _default _: * et *: * dans VirtualHost Context
  • Rediriger une URL vers une autre sur le même tour du site?
  • Utilisation de la Route 53 avec DNS publicitaire EC2 et hôtes virtuels
  • Configuration du sous-domaine sur un server Centos, en utilisant BIND et Lighttpd (Vhosts)
  • Apache: configure prefork d'une manière per-virtualhost
  • Apache2 - erreur de 500 servers lors de l'access au file .php
  • Un ip sur le port 80 avec plusieurs autres noms et ports mutiables
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.