web网站服务(二)

一.web的访问控制:
1.httpd服务访问控制的类型:
客户端地址限制及用户授权限制
1)客户端地址限制:根据客户机的IP地址进行控制,实现对网站敏感资源进行保护。
2)用户授权限制:要求客户端在访问特定完整资源时提供用户密码进行验证,用户授权限制比IP地址限制更灵活。
2.客户端地址限制实现的方式:
1)编辑主配置文件httpd.conf中<Directory "目录"></Directory>区域中的配置。
2)控制客户端的配置:
Order allow,deny ##控制顺序,先允许后拒绝;也可以先拒绝后允许
Allow from 客户端地址 ##允许客户端地址访问,地址是ALL(所有)或网段或IP地址或空格隔开多个地址
3.用户授权限制:
1)编辑的位置同客户端地址限制
2)用户授权限制配置:
第一步:创建httpd的用户和密码
htpasswd -c 用户文件 用户名 ##创建用户
htpasswd 用户文件 用户名 ##创建第二或以后用户
第二步:修改配置文件实现授权
AuthName "认证提示文字"
AuthType Basic ##认证类型为Basic
AuthUserFile "用户文件" ##指定用户文件
Require valid-user ##只有通过认证的用户才能访问
第三步:重启服务,访问验证

二.web虚拟主机
1.web虚拟主机:
通过在一台服务器上配置多个网站,每一个网站不独占物理服务。
2.apahce支持的虚拟主机类型:
基于域名(相同IP、相同端口、不同域名);基于IP(不同IP,不同域名、相同端口);基于端口(相同IP、相同域名、不同端口)。
3.基于域名虚拟主机配置流程:
1)配置dns提供域名解析(工作中注册域名,并添加解析)
2)修改httpd.conf及extra/httpd-vhosts.conf支持虚拟主机
3)主站迁移
4)重启服务,测试

三.配置HTTPS:
1.了解加密算法:
加密算法的分类:对称加密和非对称加密
1)对称加密:加密和解密使用同一个密钥,优点是速度快,缺点是密钥的共享困难。典型的对称加密算法有DES/AES/RC5/3DES等。
2)非对称加密:生成一个秘密对(公钥和私钥),加密过程中可以是私钥加密公钥解密;也可以是公钥加密私钥解密;一般情况下私钥由服务器保存,公钥共享给客户端,采用公加私解的方式。它的特征是不论你得到公钥还是私钥都是无法逆推密钥对的另一半,这保证了密钥的安全性。缺点是加密速度极慢,不适合加密数据量大的流量。典型的非对称加密算法有RSA/DSA.
如何选择加密算法?
如果选择对称加密,密码的共享(传输)过程不安全;如果选择非对称加密,加密速度慢。
一个完美的解决方案:
用对称加密的密钥用于加密数据,用非对称加密来保护对称加密的密钥,实现又快又安全的数据加密。保证了数据的私密性。

2.证书服务器:CA
在上述方案中还存在这样一个问题:如何确认公钥是由真正的密钥对拥有者所共享(传输)的。解决该问题的方案是证书认证,CA服务器提供证书认证服务。
证书认证的过程:
1)服务器生成密钥对(公钥和私钥)和认证请求,
2)CA服务器根据认证请求为服务器颁发根证书,
3)服务器获取根证书并共享给客户机,客户导入根证书.
4)通讯过程中,客户机依据根证书确认公钥的合法性.

证书服务器分为:公共证书服务器(如微软、google等)和企业自建的私有证书服务器(openssl实现)。证书认证服务器提供了数据的不可否认性。

3.数字签名:HASH
在上述的方案中,依然还存在一个问题:无法判断数据在传输过程中的完整性(是否被篡改过)。
典型的HASH算法:MD5,SHA1,SHA256,SHA512等。
数字签名的过程:
服务器使用HASH算法对所需传输的数据进行hash计算的出一串数字,并将这串数字公布,数据从服务器上传输到客户机后,客户机使用相同的hash算法计算hash值,如果和服务器公布的数字签名一致,则数据没有被篡改,反之亦然。这样就保证了数据的完整性。

4.了解https的工作原理:
1)https(Hypertext Transfer Protocol over Secure Socket Layer),即http下加入了SSL,端口默认为443.
2)SSL:安全套接字层,是netscape公司设计的主要用于安全传输。
3)https通讯过程:
a.客户端请求https链接(通过https://实现),服务端返回证书(携带了公钥、证书的颁发机构、选择一组加密算法和HASH算法等信息)给客户端。
b.客户端收到证书后:验证证书的合法性,生成随机密码(使用协商好的对称加密算法)并使用公钥加密,使用约定的HASH计算握手消息并使用随机密码对消息进行加密。
c.客户端将由公钥加密的随机密码和由随机密码加密过的HASH数字签名发给服务器。
d.服务器(网站)收到随机密码和数字签名后:用私钥解密得到随机密码,用随机密码解密得到数字签名,用数字签名验证握手消息的完整性。并使用随机密码加密一段握手消息发给客户端(浏览器)。
e.浏览器解密握手并计算握手hash,确保数据的完整性。之后的通信数据使用随机密码进行加密(对称算法)。

转载于:https://blog.51cto.com/14386255/2406852

猜你喜欢

转载自blog.csdn.net/weixin_34212189/article/details/92257198