一.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,确保数据的完整性。之后的通信数据使用随机密码进行加密(对称算法)。