apache服务(三)https

1.HTTPS

1.HTTPS简介:
HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 它是一个URI scheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。https:URL表明它使用了HTTP,但HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)。这个系统的最初研发由网景公司(Netscape)进行,并内置于其浏览器Netscape Navigator中,提供了身份验证与加密通讯方法。现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面。
2.HTTPS和HTTP的区别
<1>https协议需要到ca申请证书,一般免费证书很少,需要交费。
<2>http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。
<3>http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
<4>http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
实验
-1-https的实现

<1>首先安装ssl插件,使其可以访问https(如果不安装,在网址中输入https会出现报错)

[[email protected] Desktop]# yum install mod_ssl -y

apache服务(三)https
<2>查看子配置目录下是否有ssl.conf文件

[[email protected] conf.d]# ls

apache服务(三)https
<3>重启服务

[[email protected] conf.d]# systemctl restart httpd

apache服务(三)https
<4>在浏览器中输入https加本机ip,会发现不会报错,但是会出现提示
apache服务(三)https
<5>按照如下依次进行选择,获得加密key
apache服务(三)httpsapache服务(三)https
<6>当再次输入网址时(刷新也可),会成功进入,且https前方会自动多一个锁的形状
apache服务(三)https
<7>点击锁,选择more information ,会发现这个加密key并不安全(因为证书等都是别人提供的,并不是自己私有的)
输入网址但不刷新:
apache服务(三)https
刷新后:
apache服务(三)https
点击锁:
apache服务(三)https
选择Security
apache服务(三)https
可以查看到证书的相关信息
apache服务(三)https
<8>删除加密key,即证书,在浏览器中选择preference,并按照以下操作进行选择
apache服务(三)https
apache服务(三)https
apache服务(三)https
删除后进行查看,发现已经删除
apache服务(三)https
-2-自主提供加密key
<1>安装crypto-utils插件,使其可以出现设置加密key的图形

[[email protected] Desktop]# yum install crypto-utils -y

apache服务(三)https
<2>在子配置目录下生成加密文件

[[email protected] Desktop]# genkey www.westos.com

apache服务(三)https
<3>执行genkey命令后,我们要在图形中操作以获取证书(可以使用tab键),按照下面操作即可
图一:选择Next
apache服务(三)https
图二:选择1024和Next
apache服务(三)https
图三:正在创建随机数,可以在别的虚拟机中敲入字符使其加快速度获取随机数
apache服务(三)https
apache服务(三)https
图四:选择No
apache服务(三)https
图五:选择Next,不要选择Encrypt the private key(否则每次重启获取证书时都需要输入密码)
apache服务(三)https
图六:填写证书的信息
apache服务(三)https
<4>证书获取成功后,查看生成的加密key的信息
apache服务(三)https
<5>进入子配置目录下的ssl.conf文件并将生成的加密key的信息写入(之前的最好不要删除,避免影响以后的操作),并重启服务

[[email protected] conf.d]# vim ssl.conf
[[email protected] conf.d]# systemctl restart httpd

apache服务(三)https
文件内更改的信息如下(添加以下信息,并将之前的信息注释掉):

SSLCertificateKeyFile /etc/pki/tls/private/www.westos.com.key
SSLCertificateFile /etc/pki/tls/certs/www.westos.com.crt

apache服务(三)https
<6>打开浏览器输入网址重新获取加密key,会发现还是之前的,这是因为浏览器的缓存问题,删除缓存即可
apache服务(三)https
<7>重新输入网址并获取加密key
apache服务(三)https
apache服务(三)https
apache服务(三)https
<8>点击锁,选择more information ,会发现这个加密key安全,其证书都已变成了自己设置的信息
apache服务(三)https
apache服务(三)https
注意:
1.登陆账号的时候需要证书,指所有生成加密key,是为了保证用户数据在互联网中不会被泄露
2.443是加密端口

2.网页加密访问https

为了使其自动为所有网址加上https,需要进行加密
<1>打开浏览器,输入一个网址,会发现只有在域名前输入https://才可以转换到加密访问的方式
输入一个网址:
apache服务(三)https
在域名前输入https://;
apache服务(三)https
<2>进入共享目录后在westos.com下创建一个login(输入网址时是login.westos.com

[[email protected] ~]# cd /var/www/virtual
[[email protected] virtual]# ls
[[email protected] virtual]# mkdir westos.com/login
[[email protected] virtual]# cd westos.com/login

apache服务(三)https
<3>编辑index.html并显示其内容

[[email protected] login]# vim index.html
[[email protected] login]# cat index.html

apache服务(三)https
<4>进入子配置目录中并将配置文件music.conf的内容复制到login.conf中

[[email protected] login]# cd /etc/httpd/conf.d
[[email protected] conf.d]# ls
[[email protected] conf.d]# cp -p music.conf login.conf

apache服务(三)https
<5>编辑login.conf中的文件并使服务生效

[[email protected] conf.d]# vim login.conf
[[email protected] conf.d]# systemctl restart httpd

apache服务(三)https
文件中的内容如下:

<VirtualHost *:443>	##443是加密端口
        ServerName "login.westos.com"
        DocumentRoot "/var/www/virtual/westos.com/login"
        CustomLog logs/login.log combined
        SSLEngine on	##开始https功能呢个
        SSLCertificateKeyFile /etc/pki/tls/private/www.westos.com.key	##**
        SSLCertificateFile /etc/pki/tls/certs/www.westos.com.crt	##证书
</VirtualHost>
<Directory "/var/www/virtual/westos.com/login">
        Require all granted
</Directory>
<VirtualHost *:80>	##网页重写实现自动访问https
        ServerName login.westos.com
        RewriteEngine on
        RewriteRule ^(/.*)$ https://%{HTTP_HOST}$1 [redirect=301]	##301表示永久重定向
</VirtualHost>

apache服务(三)https
<6>再次打开浏览器,会发现访问 http://login.westos.com 会自动跳转到
https://login.westos.com 实现网页数据加密传输
apache服务(三)https

注意:
1.如果以上步骤都对但依旧无法访问,其原因可能是因为文件首字母影响了访问的顺序的问题,按照以下命令修改即可
[[email protected] conf.d]# mv login.conf z_login.conf
[[email protected] conf.d]# systemctl restart httpd
2.http(超文本传输协议)和https(对这种协议进行加密)生成公钥和锁
3.自动的将普通访问自动转换成加密方式的访问
4.^(/.)$ https://%{HTTP_HOST}1[redirect=301]5.(/.)1 [redirect=301] 5.^(/.*) 客户主机在地址栏中写入的所有字符,不包含换行符
6.https:// 定向成为的访问协议
7.%{HTTP_HOST} 客户请求主机
8.$1 1(/.)1的值就表示^(/.*)的值
[redirect=301] 临时重定向 302永久重定向
*