apache:https的实现(含证书),设置https虚拟主机并设定网页重写

来源:csdn博客 分类: 文章浏览史 发布时间:2020-07-02 14:48:30 最后更新:2020-07-02 浏览:611
转载声明:
本文为摘录自“csdn博客”,版权归原作者所有。
温馨提示:
为了更好的体验,请点击原文链接进行浏览
摘录时间:
2020-07-02 14:48:30

一:https的概念

HTTPS简介

HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket
Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版本。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。
它是一个URL scheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。https:URL表明它使用了HTTP,但HTTPS存在不同于HTTP的默认端口(https是443端口)及一个加密/身份验证层(在HTTP与TCP之间)。这个系统的最初研发由网景公司(Netscape)进行,并内置于其浏览器Netscape Navigator中,提供了身份验证与加密通讯方法。现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面。

HTTPS和HTTP的区别:

<1>https协议需要到ca申请证书,一般免费证书很少,需要交费。
<2>http是超文本传输协议,信息是明文传输,https
则是具有安全性的ssl加密传输协议。
<3>http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
<4>http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

二:https

<1>实现https并对其进行加密

问题:我们去访问https:172.25.254.115访问不到

在这里插入图片描述
为了解决这个问题,我们需要进行以下步骤:

实验如下

实现https

第一步

 yum install mod_ssl -y           安装ssl插件,使其可以访问https(如果不安装,在网址中输入https会出现报错)

在这里插入图片描述
在这里插入图片描述

第二步

 systemctl restart httpd 

在这里插入图片描述

第三步

firewall-cmd --list-all
firewall-cmd --permanent --add-service=https
firewall-cmd --reload

在这里插入图片描述

测试:然后在浏览器https:172.25.254.106让你添加证书(证书相当于加密key的标签),证书添加之后可以访问到

在这里插入图片描述

在这里插入图片描述
可以访问到了:
在这里插入图片描述
但我们可以看到这个证书是由别人提供的

在这里插入图片描述
在这里插入图片描述
这个证书不安全,所以我们需要自己去实现一个加密key,将原本的证书信息删除,因为浏览器会缓存。

在浏览器右上角选择下图所示
在这里插入图片描述
在选择perferences会出现以下界面
在这里插入图片描述

在这里插入图片描述

进行加密

第一步:安装加密key安装包

 yum install crypto-utils -y             自主提供加密key,安装crypto-utils插件,使其可以出现设置加密key的图形

在这里插入图片描述
安装完成:
在这里插入图片描述

第二步:进行key加密

cd  /etc/httpd/conf.d
genkey apache.westos.com       在子配置目录下生成加密文件

这是加密完成的界面:

在这里插入图片描述
在输入 genkey apache.westos.com 命令后会出现以下界面

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
第三步:编辑加密文件

cd /etc/httpd/conf.d/
vim /etc/httpd/conf.d/ssl.conf         将锁和证书换成自己设定的
SSLCertificateFile  /etc/pki/tls/certs/apache.westos.com.crt
SSLCertificateKeyFile  /etc/pki/tls/private/apache.westos.com.key

在这里插入图片描述

将锁和证书换成自己设定的

在这里插入图片描述
第四步:重启服务

systemctl restart httpd 

在这里插入图片描述
测试:然后在浏览器https:172.25.254.106让你添加证书,添加之后可以访问到,查看证书的信息,是自己设定的

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述可以查看到https:172.25.254.115

在这里插入图片描述

<2>设置https虚拟主机并设定网页重写

问题:如图所示:
在这里插入图片描述
在这里插入图片描述

在我们的日常生活中,我们在浏览器输入网址的时候,比如:www.baidu.com它自己会切换到https://www.baidu.com,而我们现在还必须手动在网址面前输入https:为了使其自动为所有网址加上https,需要进行以下操作:

实验如下

为了实验效果明显,我们设置https的虚拟主机,并在浏览器输入网址一栏输入这个虚拟主机的域名时候,看能否自动转化。

第一步:编辑子配置文件

cd  /etc/httpd/conf.d
vim meng_https.conf  在里面写入
<VirtualHost *:443>         https的默认端口是443
     ServerName login.westos.com
     DocumentRoot /var/www/meng/login
     Customlog logs/login.log combined
     SSLEngine on                                    开启加密认证
     SSLCertificateFile /etc/pki/tls/certs/apache.westos.com.crt
     SSLCertificateKeyFile  /etc/pki/tls/private/apache.westos.com.key
</VirtualHost>
<Directory "/var/www/meng/login">
            Require all granted
</Directory>

<VirtualHost *:80>                              将在80端口浏览器输入的字符前强制加入https
      ServerName login.westos.com
      RewriteEngine on
      RewriteRule ^(/.*)$ https://%{HTTP_HOST}$1  [redirect=301]
</VirtualHost>

注意

^(/.*)$ 客户在浏览器地址栏中输入的所有字符
https:// 强制客户加密访问
%{HTTP_HOST} 客户请求主机
1(/.)1表示^(/.*) 的值
[redirect=301] 永久重写,302是临时的

在这里插入图片描述
在这里插入图片描述

第二步:建立默认发布目录及文件

mkdir -p /var/www/meng/login
vim /var/www/meng/login/index.html
systemctl restart httpd

在这里插入图片描述
第三步:配置本地解析

vim /etc/hosts
172.25.254.115  login.westos.com

在这里插入图片描述

测试:在浏览器输入login.westos.com看是否能转换为https:login.westos.com

在这里插入图片描述
要添加证书:
在这里插入图片描述

在这里插入图片描述

证书信息:
在这里插入图片描述

转化成功:
在这里插入图片描述

php技术微信