1.插话
Apache(上)中介绍的所有页面的访问均是浏览性质的网页(http),而我们平时访问的很多网站是需要进行加密的(https),需要在服务端安装一个软件:mod_ssl(此软件对于Apache相当于一个插件,插件的添加就意味着功能的添加)
然而,不幸的是,这两个协议的网络端口是不同的,服务端是不能够要求客户端每次输入网址的时候刻意地输入http或者https。故而,在服务端需要进行一系列的配置,实现客户端的默认端口80端口向443端口转换~
平时上网,我们随便打开一个浏览性质的网页,他是从Apache的80端口进去进行解析的,这个是不加密的(地址栏中只是此网页的域名)
我们在来看一个需要填写认证信息的网页,他的地址栏中不仅仅有此网页的域名,还有一个小锁的标志,他就说明是加密的,可是加密的网络端口是443,用户访问的默认端口又是80,这中间到底是如何实现了自动跳转呢?下面的内容会讲到这个功能是如何实现的。
2.加密插件
1)安装
step1:
yum install mol_ssl -y ##安装插件
##安装完成之后,在/etc/httpd/conf.d/下会自动生成一个名为:ssl.conf的文件,打开此文件可以查看到加密之后的网络访问端口确实为:443
安装完成后,需要进行服务的重新加载:
systemctl reload httpd
##httpd支持在线加载
##通过下图的实验,我们可以清除的看到重新加载之前服务开启的网络端口只有80,而重新加载之后,则增加了一个443端口,说明插件添加成功
此时,可以输入加密的网页进行测试,查看功能模块是否可以实现:
https://172.25.254.108 ##出现加密页面则说明插件加入成功~
step2:
如果加密的通信非常重要,而经过验证的身份不重要,那么,管理员可以通过生成self-signed certificate来避免与认证机构进行交互所带来的复杂性,使用genkey实用程序生成签名证书及其关联的私钥。为了简化起见,genkey将在“正确“的位置(/etc/pki/tls目录)创建证书及其关联的密钥。相应的,必须以授权用户(root)身份运行实用程序:
yum install crypto-utils.x86_64 -y ##安装
genkey www.westos.com ##生成关于www.westos.com的签名认证书及密钥
生成过程如下:
下图中的四个选项表示密钥的长度,此密钥的信息会要求管理员随机键入来收集信息形成密钥
下图的过程不需要手动参与,静静等待即可
下图的过程需要管理员手动随机键入来收集密钥的信息
实验环境选择NO(YES要收费)
注意:括号里面不需要写任何东西
信息填写不一定要真实,但逻辑上不能违背事实(国籍、省份、市区)
至此,应用程序的工作全部完成,管理员还需要修改一些配置文件的信息
将自己通过genkey应用程序生成的认证书和密钥添加到默认的ssl.conf文件中,形成有自己唯一标识的认证书和密钥
为了将测试的结果显的更加专业,我们先创建一个目录,此目录的安全上下文和Apache默认发布的要一致:
mkdir /var/www/html/login/html -p
在编写一个login的文件:
vim /var/www/westos/login/html/index.html
<h1>login page</h1>
:wq
vim /etc/httpd/conf.d/login.conf ##编辑文件
在测试机中将login.westos.com加入本地解析:
vim /etc/hosts
172.25.254.108 login.westos.com
firefox
https://login.westos.com
##进入到了一个加密网页
进入此网页成功后再继续编辑:
vim /etc/httpd/conf.d/login.conf ##添加自动转换功能
##^(/.*)$ https://%{HTTP_HOST}$1 [redirect=301]
##^(/.*)$ 客户主机在地址栏中写入的所有字符,不包含换行符
##https:// 定向成为的访问协议
##%{HTTP_HOST} 客户请求主机
##$1 $1的值就表示^(/.*)$的值
##[redirect=301] 临时重定向 302永久重定向
再次在测试端输入:
firefox ##打开一个浏览器
login.westos.com ##80 --> 443
Get Certificate ##获取认证书
Confirm Security Excpection ##浏览加密网页