Apache的部署三(加密访问 、网页重写)

1. apache的加密访问

(1).http简介

http: 超文本传输协议,使用TCP端口80,默认情况下数据是明文传送的,数据可以通过抓
包工具捕获到,因此在interner上,有些比较重要的站点的http服务器需要使用PKI(公钥基
础结构)技术来对数据加密!这也就是https了;

(2).https简介

https: 安全的超文本传输协议,使用TCP端口443,他的数据会用PKI中的公钥进行加密,这
样抓包工具捕获到的数据包也没有办法看包中的内容,安全性大大提高,要解密数据的话就要
用到PKI中的私钥。所以一些安全性比较高的网站如:网上银行,电子商务网站都需要用https访问! 

(3).http与https区别

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

(4).为什么要加密访问?

这是因为加密后访问更加安全,很多网站的访问都是加密访问
比如访问百度时,输入网址 www.baidu.com(实质上是 http://www.baidu.com

在这里插入图片描述
会自动跳转到 https://www.baidu.com
在这里插入图片描述
那么如何让访问apahce也变成加密访问呢?

1).利用系统自动生成的证书加密apache

未加密apahce时,不能访问https
在这里插入图片描述

(1).安装ssl

##安装ssl
[root@apache-server ~]# yum install -y mod_ssl 
[root@apache-server ~]# cd /etc/httpd/conf.d/
##ssl.conf为ssl服务的主配置文件
[root@apache-server conf.d]# ls

在这里插入图片描述
(2).重启apache

[root@apache-server conf.d]# systemctl restart httpd

(3).网页测试

输入: https://172.25.254.134
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这是当你访问apache时,系统自动生成证书。

那么如何制作自己的证书呢?

2).利用自己制作的证书实现apache的加密访问

(1).先删除系统生成的证书

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
重新输入 https://172.25.254.134 检测证书是否被成功删除
在这里插入图片描述
(2).安装crypto-utils

[root@apache-server ~]# yum install -y crypto-utils -y

(3).制作证书和key

[root@apache-server ~]# genkey www.westos.com

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
此时加载数据条会卡住,这需要打开虚拟机shell,一直敲击键盘生成加密字符,直到加载数据完毕!
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(4).关联证书和key

[root@apache-server ~]# cd /etc/httpd/conf.d/
[root@apache-server conf.d]# ls
a_default.conf  http_userlist  music.conf  php.conf  ssl.conf      welcome.conf
autoindex.conf  manual.conf    news.conf   README    userdir.conf
##将自己制作的证书和key写入到ssl服务的主配置文件中
[root@apache-server conf.d]# vim ssl.conf 
############################
100 #SSLCertificateFile /etc/pki/tls/certs/localhost.crt
101 SSLCertificateFile /etc/pki/tls/certs/www.westos.com.crt       ##证书
108 #SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
109 SSLCertificateKeyFile /etc/pki/tls/private/www.westos.com.key  ##钥匙(key)

在这里插入图片描述
(5)重启apache

[root@apache-server conf.d]# systemctl restart httpd

(6).网页测试

输入: https://172.25.254.134
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
虽然已经实现了apache的加密访问,但在网页上必须输入 https://172.25.254.134 强制加密访问。

那如果想要实现直接输入ip便能自动跳转到https加密,该如何操作呢?

2.构建https虚拟主机并设定网页重写(http—>https)

(1)构建虚拟主机(编写发布目录)

##1.创建发布目录
[root@apache-server ~]# cd /var/www/westos.com/
[root@apache-server westos.com]# ls
music  news
##-p 表示递归
[root@apache-server westos.com]# mkdir -p login/html
[root@apache-server westos.com]# cd login/html
[root@apache-server html]# pwd
/var/www/westos.com/login/html
##2.编写发布文件
[root@apache-server html]# vim index.html
##########################
 <h1>login's page</h1>

在这里插入图片描述

##3.编写子配置文件
[root@apache-server html]# cd /etc/httpd/conf.d/
[root@apache-server conf.d]# ls
a_default.conf  http_userlist  music.conf  php.conf  ssl.conf      welcome.conf
autoindex.conf  manual.conf    news.conf   README    userdir.conf
[root@apache-server conf.d]# cp news.conf login.conf
[root@apache-server conf.d]# vim login.conf 

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

##4.重启apache
[root@apache-server conf.d]# systemctl restart httpd
##5.本地解析
[root@foundation34 ~]# vim /etc/hosts
######################
172.25.254.134 login.westos.com

网页测试:
在这里插入图片描述
(2).网页重写

##1.编写子配置文件
[root@apache-server conf.d]# pwd
/etc/httpd/conf.d
[root@apache-server conf.d]# vim login.conf 
#########################
  1 <VirtualHost *:443>    ## https的端口为443
  
  5         SSLEngine on                 ##开启ssl
  6         SSLCertificateFile /etc/pki/tls/certs/www.westos.com.crt       ##指定证书
  7         SSLCertificateKeyFile /etc/pki/tls/private/www.westos.com.key  ##指定钥匙(key)

 14 <VirtualHost *:80>     ## http的端口为80
 15          ServerName login.westos.com           ##设定访问域名
 16          RewriteEngine on             ##开启
 17          RewriteRule ^(/.*)$ https://%{HTTP_HOST}$1 [redirect=301]
 18 </VirtualHost>

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

当访问80端口时,自动跳转到443端口上(http---->https)

在这里插入图片描述

##2.重启apache
[root@apache-server conf.d]# systemctl restart httpd

网页测试:

先确保已经添加了自己制作的证书
在这里插入图片描述
输入 login.westos.com 会自动跳转到 https://login.westos.com
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值