https
超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。 |
为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS,为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。 |
一、HTTP和HTTPS的基本概念
HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。 |
HTTPS:是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 |
HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。 |
二、HTTP与HTTPS有什么区别?
HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全,为了保证这些隐私数据能加密传输,于是网景公司设计了SSL(Secure Sockets Layer)协议用于对HTTP协议传输的数据进行加密,从而就诞生了HTTPS。简单来说,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。 |
HTTPS和HTTP的区别主要如下:
1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。 |
2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。 |
3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。 |
4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。 |
三、
加密访问
例
访问百度时,输入网址 www.baidu.com(实质上是 http://www.baidu.com)
自动跳转到 https://www.baidu.com
如何设置加密访问
下载
yum install mod_ssl -y
cd /etc/httpd/conf.d/
ls 生成ssl.conf(ssl服务的主配置文件)
autoindex.conf php.conf ssl.conf vhost.conf
manual.conf README userdir.conf welcome.conf
systemctl restart httpd
firewall-cmd --reload
success
firewall-cmd --list-all
public (default, active)
interfaces: eth0
sources:
services: dhcpv6-client dns http https ssh
ports: 8080/tcp 6666/tcp
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
测试
访问apache时,系统自动生成证书
利用自己制作的证书实现apache的加密访问
删除系统生成的证书
自己制作的证书
yum install -y crypto-utils
genkey www.westos.com
vim /etc/httpd/conf.d/ssl.conf
systemctl restart httpd.service
构建https虚拟主机并设定网页重写(http—>https)
genkey www.westos.com
vim /etc/httpd/conf.d/ssl.conf
systemctl restart httpd.service
构建httpd虚拟主机
ls
cgi-bin html vhost
cd /var/www/vhost/
ls
music news
mkdir -p /var/www/vhost/login/html
cd /var/www/vhost/login/html/
<h1>login's page</h1>
编写配置文件
vim /etc/httpd/conf.d/vhost.conf
客户端
配置域名
vim /etc/hosts
测试
需保证已经添加证书
网页重写
实现直接输入ip便能自动跳转到https加密
<VirtualHost *:443>
SSLEngine on 开启ssl服务
SSLCertificateFile /etc/pki/tls/certs/www.westos.com.crt 证书
SSLCertificateKeyFile /etc/pki/tls/private/www.westos.com.key 钥匙
ServerName login.westos.com 搜索域名
DocumentRoot /var/www/vhost/login/html 存放路径
CustomLog logs/login.log combined
</VirtualHost>
<VirtualHost *:80>
ServerName login.westos.com 搜索域名
RewriteEngine on 打开
RewriteRule ^(/.*)$ https://%{HTTP_HOST}$1 [redirect=301]
</VirtualHost>
<Directory "/var/www/vhost/login/html"> 授权
Require all granted
</Directory>
重启服务
systemctl restart httpd
测试
^(/.*)$
##表示客户端在浏览器地址栏中输入的所有字符
https://
##强制客户加密访问
%{HTTP_HOST}
##客户请求主机
$1
##^(/.*)$的值
[redirect=301]
##永久重写(302是临时转换)