Quantcast
Channel: CodeSection,代码区,网络安全 - CodeSec
Viewing all articles
Browse latest Browse all 12749

httpd协议配置进阶

$
0
0
目录

虚拟主机配置

status状态页面

curl命令

mod_deflate模块

https配置

httpd自带应用程序

虚拟主机配置 有三种实现方案: 基于IP: 为每个虚拟主机准备至少一个IP地址 基于端口: 为每个虚拟主机使用至少一个独立的port 局域FQDN: 为每个虚拟主机使用至少一个FQDN

注意:一般虚拟主机不要与中心主机混用; 因此,要使用虚拟主机,得先禁用’main’主机

禁用方法:注释中心主机的DocumentRoot指令即可

虚拟主机配置方法 <VirtualHost IP:PORT> # 指明IP和端口 ServerName FQDN # 指明主机名 DocumentRoot "" # 网页文档路径 </VirtualHost> 其它可用命令: ServerAlias:虚拟主机的别名;可多次使用; ErrorLog:错误日志 CustomLog:访问日志 ... 基于IP的虚拟主机示例

1.创建虚拟主机配置文件


httpd协议配置进阶

2.为每个虚拟主机提供网页文档


httpd协议配置进阶

3.测试


httpd协议配置进阶
httpd协议配置进阶
httpd协议配置进阶
基于端口的虚拟主机

1.创建虚拟主机配置文件


httpd协议配置进阶

2.确认三个端口都已经监听


httpd协议配置进阶

3.测试


httpd协议配置进阶
httpd协议配置进阶
httpd协议配置进阶
基于主机名的虚拟主机

1.创建虚拟主机配置文件


httpd协议配置进阶

2.在客户端hosts文件中添加主机名解析


httpd协议配置进阶

3.测试


httpd协议配置进阶
httpd协议配置进阶
httpd协议配置进阶
配置status状态页

1.确保status_module模块已加载


httpd协议配置进阶

2.在配置文件中添加此项


httpd协议配置进阶

3.测试


httpd协议配置进阶
curl命令 curl是基于URL语法在命令行方式下工作的文件传输工具,它支持FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE及LDAP等协议。curl支持HTTPS认证,并且支持HTTP的POST、PUT等方法, FTP上传, kerberos认证,HTTP上传,代理服务器, cookies, 用户名/密码认证, 下载文件断点续传,上载文件断点续传, http代理服务器管道( proxy tunneling), 甚至它还支持IPv6, socks5代理服务器,,通过http代理服务器上传文件到FTP服务器等等,功能十分强大。 curl [options] [URL...] curl的常用选项: -A/--user-agent <string> 设置用户代理发送给服务器 --basic 使用HTTP基本认证 -e/--referer <URL> 来源网址 --cacert <file> CA证书 (SSL) --compressed 要求返回是压缩的格式 -H/--header <line>自定义首部信息传递给服务器 -I/--head 只显示响应报文首部信息 --limit-rate <rate> 设置传输速度 -u/--user <user[:password]>设置服务器的用户和密码 -0/--http1.0 使用HTTP 1.0 -X, --request <command>:自定义请求方法 用法:curl [options] [URL...] 另一个工具:elinks elinks [OPTION]... [URL]... -dump: 不进入交互式模式,而直接将URL的内容输出至标准输出; mod_deflate模块 使用mod_deflate模块压缩页面优化传输速度 适用场景: (1) 节约带宽,额外消耗CPU;同时,可能有些较老浏览器不支持; (2) 压缩适于压缩的资源,例如文件文件; SetOutputFilter DEFLATE # mod_deflate configuration # Restrict compression to these MIME types AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE application/xhtml+xml AddOutputFilterByType DEFLATE text/xml AddOutputFilterByType DEFLATE application/xml AddOutputFilterByType DEFLATE application/x-javascript AddOutputFilterByType DEFLATE text/javascript AddOutputFilterByType DEFLATE text/css # Level of compression (Highest 9 - Lowest 1) DeflateCompressionLevel 9 # Netscape 4.x has some problems. BrowserMatch ^Mozilla/4 gzip-only-text/html # Netscape 4.06-4.08 have some more problems BrowserMatch ^Mozilla/4\.0[678] no-gzip # MSIE masquerades as Netscape, but it is fine BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html https协议

HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。

HTTPS和HTTP的区别

超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息。HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此HTTP协议不适合传输一些敏感信息,比如信用卡号、密码等。

为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS。为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。

SSL会话的简化过程 (1) 客户端发送可供选择的加密方式,并向服务器请求证书; (2) 服务器端发送证书以及选定的加密方式给客户端; (3) 客户端取得证书并进行证书验正: 如果信任给其发证书的CA: (a) 验正证书来源的合法性;用CA的公钥解密证书上数字签名; (b) 验正证书的内容的合法性:完整性验正 (c) 检查证书的有效期限; (d) 检查证书是否被吊销; (e) 证书中拥有者的名字,与访问的目标主机要一致; (4) 客户端生成临时会话密钥(对称密钥),并使用服务器端的公钥加密此数据发送给服务器,完成密钥交换; (5) 服务用此密钥加密用户请求的资源,响应给客户端; 注意:SSL会话是基于IP地址创建;所以单IP的主机上,仅可以使用一个https虚拟主机; 配置httpd支持https (1) 为服务器申请数字证书; 测试:通过私建CA发证书 (a) 创建私有CA (b) 在服务器创建证书签署请求 (c) CA签证 (2) 配置httpd支持使用ssl,及使用的证书; # yum -y install mod_ssl 配置文件:/etc/httpd/conf.d/ssl.conf DocumentRoot ServerName SSLCertificateFile SSLCertificateKeyFile https配置实现 1.安装mod_ssl包,配置http支持https [root@centos7 ~]# yum -y install mod_ssl [root@centos7 ~]# httpd -M | grep ssl ssl_module (shared) [root@centos7 ~]# 2.建立私有CA

(1)生成私钥


httpd协议配置进阶

(2)生成自签证书


httpd协议配置进阶

(3)为CA提供所需的目录及文件


httpd协议配置进阶
3.在服务器端创建签署请求,CA签证

(1)生成私钥

[root@centos7 ~]# mkdir /etc/httpd/ssl [root@centos7 ~]# cd /etc/httpd/ssl [root@centos7 ssl]# (umask 077; openssl genrsa -out /etc/httpd/ssl/httpd.key 2048)

(2)生成签署请求


httpd协议配置进阶

(3)CA签证

[root@centos7 ssl]# openssl ca -in httpd.csr -out /etc/httpd/ssl/httpd.crt -days 365 4.配置httpd支持ssl
httpd协议配置进阶
httpd协议配置进阶
5.客户端验证
httpd协议配置进阶
httpd协议配置进阶
httpd协议配置进阶
http自带应用程序 htpasswd:basic认证基于文件实现,用于生成账号和密码的程序; -c:自动创建此处指定的文件,因此,仅应该在此文件不存在时使用 -m:md5格式加密 -s:sha格式加密 -D:删除指定用户 apachectl:httpd自带的服务控制脚本,支持start和stop等子命令; apxs:- APache eXtenSion tool 为httpd增添模块的; rotatelogs:日志切割 access_log, access_log, access_log.1, ... ab - web service的压力测试工具 ab [OPTIONS] [http[s]://]hostname[:port]/path 请求数:[ -n requests ] 并发数:[ -c concurrency ] 长连接:[ -k ]

Viewing all articles
Browse latest Browse all 12749

Trending Articles