我们之前搭建的网站基于http协议,是没有进行加密的,网站的有些信息可能会泄露,所以我们可以在这基础上进行加密,下面简单介绍加密过程
配置HTTPS
实现步骤:
(1)为服务器申请数字证书
(2)配置服务器支持ssl
yum -y install mod_ssl #安装支持ssl的模块
配置文件:/etc/httpd/conf.d/ssl.conf
----------------------------------------
DocumentRoot #文档的根目录,这个目录会覆盖默认目录,如果创建虚拟主机时不想转到默认目录,可以使用
ServerName #服务器FQDN
SSLCertificateFile #证书路径
SSLCertificateKeyFile #生成证书的私钥路径
HTTP重定向HTTPS
将http请求转发至https的URL重定向
Redirect [status] URL-path URL
status状态:
Permanent:Returns a permanent redirect status
(301) indicating that the resource has moved
permanently
Temp:Returns a temporary redirect status (302).
This is the default
示例:
Redirect temp / https://www.magedu.com/
HSTS
HSTS:HTTP Strict Transport Security
服务器端配置支持HSTS后,会在给浏览器返回的HTTP首部中携带HSTS字段。浏览器获取到该信息后,会将所有HTTP访问请求在内部做307跳转到HTTPS。而无需任何网络过程
HSTS preload list
是Chrome浏览器中的HSTS预载入列表,在该列表中的网站,使用Chrome浏览器访问时,会自动转换成HTTPS。 Firefox、 Safari、Edge浏览器也会采用这个列表
实现HSTS示例:
vim /etc/httpd/conf/httpd.conf
Header always set Strict-Transport-Security "maxage=15768000"
RewriteEngine on
RewriteRule ^(/.*)$ https://%{HTTP_HOST}$1 [redirect=301] #301状态码表示永久重定向
重定向之前要考虑好是哪种类型重定向
完整实例
[root@centos6 conf.d]# pwd
/etc/httpd/conf.d
[root@centos6 conf.d]# vi test.conf
NameVirtualHost *:80
<VirtualHost *:80>
ServerName www.x.com
Header always set Strict-Transport-Security "maxage=365"
RewriteEngine on
RewriteRule ^(/.*)$ https://%{HTTP_HOST}$1 [redirect=302] #302状态码表示临时重定向
</VirtualHost>
[root@centos6 conf.d]# vi ssl.conf
SSLCertificateFile /etc/httpd/conf.d/ssl/httpdx.crt #添加证书文件路径
SSLCertificateKeyFile /etc/httpd/conf.d/ssl/httpd.key #添加证书私钥路径
文件根目录默认为主配置文件/etc/httpd/conf/httpd.conf的DocumentRoot路径,如果想覆盖默认的,可以在ssl.conf配置文件里自己加DocumentRoot路径