HTTP ( 超文本传输协议 )是万维网 ( WWW )上数据通信的基本协议; 通常在Web浏览器和存储Web文件的服务器之间。 而HTTPS是HTTP的安全版本,其中“ S ”端代表“ Secure ”。
使用HTTPS ,您的浏览器和Web服务器之间的所有数据都是加密的,因此是安全的。 本教程将向您展示如何在Linux中将HTTP重定向到Apache HTTP服务器上的HTTPS 。
在为您的域设置Apache HTTP到HTTPS重定向之前,请确保已安装SSL证书,并在Apache中启用mod_rewrite 。 有关如何在Apache上设置SSL的更多信息,请参阅以下指南。
- 如何为Apache创建自签名的SSL证书和密钥
- 如何安装我们在CentOS / RHEL上加密SSL证书7
- 如何安装我们在Debian / Ubuntu上加密SSL证书
使用.htaccess文件将HTTP重定向到Apache上的HTTPS
对于这种方法,确保启用了mod_rewrite ,否则在Ubuntu / Debian系统上启用它。
代码语言:javascript复制$ sudo a2enmod rewrite [Ubuntu/Debian]
对于CentOS / RHEL用户,请确保您在httpd.conf ( mod_rewrite支持 - 默认情况下启用)中具有以下一行。
代码语言:javascript复制LoadModule rewrite_module modules/mod_rewrite.so
现在您只需要在您的域根目录中编辑或创建.htaccess文件,并添加这些行将http重定向到https。
代码语言:javascript复制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,首先打开相应的虚拟主机文件。 然后通过添加以下配置进行修改。
代码语言:javascript复制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服务器。
代码语言:javascript复制$ sudo systemctl restart apache2 [Ubuntu/Debian]
$ sudo systemctl restart httpd [RHEL/CentOS]
虽然<VirtualHost>
是最推荐的解决方案,因为它更简单和安全。
您可能希望阅读这些有用的Apache HTTP服务器安全强化文章:
- 25有用的Apache'.htaccess'技巧来保护和自定义网站
- 如何使用.htaccess文件密码保护Apache中的Web目录
- 如何隐藏Apache版本号和其他敏感信息
- 使用Mod_Security和Mod_evasive保护Apache免受暴力或DDoS攻击
就这样! 要分享有关本指南的任何想法,请使用下面的反馈表。 并记得始终保持与Howtoing.com的联系。