系统相关
首页 > 系统相关> > Linux中级(五)Apach续1

Linux中级(五)Apach续1

作者:互联网

一、HTTPS

    引入:HTTP协议是通过明码来传送数据的,那么对于敏感性的数据(用户名和密码)等,一旦被别人窃取,会造成损失! 

    HTTPS:Secure Hypertext Transfer Protocol(安全超文本传输协议),是在http协议基础上增加了使用SSL加密传送信息的协议!

    特点:https是经过加密的传输的加密的方式是通过用安全套接字层(SSL)!

    应用场景:银行等对安全性要求很高的网站的时候其网址的前缀又会变作https!

    Linux系统:这个SSL是openssl软件提供的一个加密函数库

HTTPS和HTTP的区别

表现方面:安全性(核心)、端口、费用

  1、https协议需要到CA申请证书,一般免费证书较少,因而需要一定费用。

  2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。

  3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

  4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

http无状态的理解

    需求:数据传输的过程中,对隐秘数据进行加密传输

     (1)首先Apach得支持https协议

yum install mod_ssl.x86_64 -y   #安装插件

现象:多了一个443的端口,并且子配置文件中也多了一个ssl.conf认证配置文件!

(2)由于防火墙开启,防火墙默认不允许443端口开启,需要开启443端口

(3)客户端测试

含义:授权本部门没有授权(没有备案),认为不安全,所以警示

解决方法:Advice(高级选项)-->Get Certificate(下载证书),Confirm确定就可以看到信息!

现象:通过锁标志(地址栏旁边)看信息发现certificate不是自己的!

进一步需求:自己制作证书和密钥

需要应用相应的工具

说明:对该域主机生成证书和密钥!

说明:告诉你密钥生成的位置!

然后:加密但位数,加密的位数越长,时间就越长

再然后:会随即收取在键盘输入的字符进行加密,如果加密字符不够,会止步不前,所以要确保加密字符足够!

说明:是否要向CA申请(要不要CA提供但服务,付费)

然后:需不需要对私钥加密(根据需求,这里不加密),否则每次都需要输入密码!

(4)既然生成密钥和证书,那么Apach必须要知道,通过配置文件告知

 vim /etc/httpd/conf.d/ssl.conf 

SSLCertificateFile    /etc/pki/tls/certs/master.wzj.com.crt
SSLCertificateKeyFile /etc/pki/tls/private/master.wzj.com.key

说明:RHEL7并没有默认提供SSL机制所需要的私钥和证书文件(6版本有)

SSLCertificateFile /etc/pki/tls/certs/localhost.crt      #加密过的证书文件

SSLCertificateKeyFile /etc/pki/tls/private/localhost.key #系统的私钥文件,用来制作证书

注意:由于二者的名字特别相近,所以一定要仔细,可以httpd -t检查一下语法!

注意:一定要reload

说明:一定要清除缓存,可以看到证书信息是自己的

注意:由于没有向CA申请,客户端浏览器在浏览的时候,会主动向CA单位确认该证书是否合法注则,如果不是就会浏览器就会发出警告信息,告知用户应避免建立连接!

二、网页的重定向

案例引入:在地址栏中输入www.baidu.com,则会自动帮我们加上https

需求:当客户端在地址栏输入相应域名的时候,也会自动的帮他们加上https建立安全的认证

现在的场景:当我们在地址栏输入域名或者IP的时候,系统默认帮我们加的是http

提示:如果浏览器会自动加上https,这可能是由于浏览器缓存的问题,ctrl+shift+delete --->清除缓存后测试!

核心测试

   (1)在虚拟主机的目录再添加一个虚拟主机的发布目录首页

说明:这里不用DNS了,在测试主机/etc/hosts加上 login.wzj.com

现象:不帮自己就算了,竟然还不是自己的页面!

对比:输入https://login.wzj.com    -->需要相应的证书,可以显示自己的页面!

分析原因:当输入一个域名的时候,默认是http方式,是80端口,而虚拟主机虽然域名对应,但由于是80端口监听,所以接受不到,那么只能按照默认的80端口来处理!而加上前缀https,直接告诉我要443端口的此域的主机,有就显示!

问题点:怎么能从80端口通知443端口,当80端口接到这个请求后,告诉443端口这个活你来做?

核心:重定向

  RewriteEngine on   #Apach允许重定向
  RewriteRule   ^(/.*)$ https://%{HTTP_HOST}$1 [redirect=301] #规则(正则表达)!
  #%{HTTP_HOST} -->表示客户端的IP -->$1表示客户端输入的内容! 301(状态码-->永久重定向)!
  #说明:当客户端访问login.westos.con 时,会将在地址栏输入的内容"^(/.*)$" 进行转换!

帮助文档-->manual --> URL Rewriting with -->Using mod_rewrite* -->格式!

了解HTTPS的缺点

HTTPS的缺点

  虽然说HTTPS有很大的优势,但其相对来说,还是存在不足之处的:

  (1)HTTPS协议握手阶段比较费时,会使页面的加载时间延长近50%,增加10%到20%的耗电;

  (2)HTTPS连接缓存不如HTTP高效,会增加数据开销和功耗,甚至已有的安全措施也会因此而受到影响;

  (3)SSL证书需要钱,功能越强大的证书费用越高,个人网站、小网站没有必要一般不会用。

   (4)SSL证书通常需要绑定IP,不能在同一IP上绑定多个域名,IPv4资源不可能支撑这个消耗。

  (5)HTTPS协议的加密范围也比较有限,在黑客攻击、拒绝服务攻击、服务器劫持等方面几乎起不到什么作用。最关键的,SSL证书的信用链体系并不安全,特别是在某些国家可以控制CA根证书的情况下,中间人攻击一样可行。

https 加密那点事

三、LAMP

          linux + Apach + Mariaridb + PHP

          核心需求:网页来管理数据库

(1)安装数据库

 yum -y install mariadb-server 

 skip-networking=1;        -->数据库不使用网络

 systemctl start mariadb   -->开启服务!

 mysql_secure_installation -->安全安装(核心-->设置root密码!)!

(2)安装管理数据库的软件

 (1)下载对应linux版本的phpMyAdmin软件(版本要兼容,太高的版本可能不适配,这里选择3,4.0的)

 tar -jxf php* (后缀是*.tar.bz2)-->解压后删除源文件(占用磁盘空间)

 注意:解压缩的位置,是在你的默认发布目录中(要明确)-->如果是默认则是/www/html下面

 说明:名字太长,可以选择重命名!

 systemctl restart  httpd

(3)阅读文档进行按转

  (1)vim mysqladmin/README(达到版本的需求) 

      看到--> php和mariaridb的最低需求版本

  (2)检验版本

     rpm -qa|grep mariadb 

     rpm -qa |grep php

  (3)看安装步骤

    vim Documentation.txt文件

  说明:告诉我们在Apach的DocumentRoot解压缩文件

  cp config.sample.inc.php config.inc.php(名字固定) 

  vim Documentation.txt ( 通过搜索 /blowfish_secret)

  vim config.inc.php -->字符串粘贴进去

(4)php管理mysql

  php -m -->查看php是否支持mysql

  yum search php-mysql.x86_64 (如果不支持下载插件)

  systemctl restart httpd

  php -m |grep mysql

(5)测试

说明:可以通过图形的创建数据库等来通过文字窗口来验证是否存在!

标签:中级,加密,HTTPS,证书,端口,Apach,https,Linux,php
来源: https://blog.csdn.net/wzj_110/article/details/89735572