Apache的https实现

来源:互联网 发布:淘宝产品打折功能收费 编辑:程序博客网 时间:2024/05/29 16:49

我们之前搭建的网站基于http协议,是没有进行加密的,网站的有些信息可能会泄露,所以我们可以在这基础上进行加密,下面简单介绍加密过程

配置HTTPS

实现步骤:
(1)为服务器申请数字证书
(2)配置服务器支持ssl

yum -y install mod_ssl  #安装支持ssl的模块配置文件:/etc/httpd/conf.d/ssl.conf----------------------------------------DocumentRoot #文档的根目录,这个目录会覆盖默认目录,如果创建虚拟主机时不想转到默认目录,可以使用ServerName #服务器FQDNSSLCertificateFile #证书路径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.confHeader always set Strict-Transport-Security "maxage=15768000"RewriteEngine onRewriteRule ^(/.*)$ 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.confSSLCertificateFile /etc/httpd/conf.d/ssl/httpdx.crt #添加证书文件路径SSLCertificateKeyFile /etc/httpd/conf.d/ssl/httpd.key #添加证书私钥路径

文件根目录默认为主配置文件/etc/httpd/conf/httpd.conf的DocumentRoot路径,如果想覆盖默认的,可以在ssl.conf配置文件里自己加DocumentRoot路径

原创粉丝点击