HTTP ( 超文本传输协议 )是万维网 ( WWW )上数据通信的基本协议; 通常在Web浏览器和存储Web文件的服务器之间。 而HTTPS是HTTP的安全版本,其中“ S ”端代表“ Secure ”。
使用HTTPS ,您的浏览器和Web服务器之间的所有数据都是加密的,因此是安全的。 本教程将向您展示如何在Linux中将HTTP重定向到Apache HTTP服务器上的HTTPS 。
在为您的域设置Apache HTTP到HTTPS重定向之前,请确保已安装SSL证书,并在Apache中启用mod_rewrite 。 有关如何在Apache上设置SSL的更多信息,请参阅以下指南。
使用.htaccess文件将HTTP重定向到Apache上的HTTPS
对于这种方法,确保启用了mod_rewrite ,否则在Ubuntu / Debian系统上启用它。
$ sudo a2enmod rewrite [Ubuntu/Debian]
对于CentOS / RHEL用户,请确保您在httpd.conf ( mod_rewrite支持 - 默认情况下启用)中具有以下一行。
LoadModule rewrite_module modules/mod_rewrite.so
现在您只需要在您的域根目录中编辑或创建.htaccess文件,并添加这些行将http重定向到https。
RewriteEngine On RewriteCond %{HTTPS} !=on RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
现在,当访问者输入http://www.yourdomain.com
,服务器将自动将HTTP重定向到HTTPS https://www.yourdomain.com
。
将HTTP重定向到Apache虚拟主机上的HTTPS
另外,要强制所有Web流量使用HTTPS ,您还可以配置虚拟主机文件。 通常,启用SSL证书时,虚拟主机配置有两个重要部分; 第一个包含非安全端口80的配置 。
第二个是安全端口443 。 要将HTTP重定向到您网站所有页面的HTTPS,首先打开相应的虚拟主机文件。 然后通过添加以下配置进行修改。
NameVirtualHost *:80 <VirtualHost *:80> ServerName www.yourdomain.com Redirect / https://www.yourdomain.com </VirtualHost> <VirtualHost _default_:443> ServerName www.yourdomain.com DocumentRoot /usr/local/apache2/htdocs SSLEngine On # etc... </VirtualHost>
保存并关闭文件,然后重新启动HTTP服务器。
$ sudo systemctl restart apache2 [Ubuntu/Debian] $ sudo systemctl restart httpd [RHEL/CentOS]
虽然<VirtualHost>
是最推荐的解决方案,因为它更简单和安全。
您可能希望阅读这些有用的Apache HTTP服务器安全强化文章:
就这样! 要分享有关本指南的任何想法,请使用下面的反馈表。 并记得始终保持与youcl.com的联系。