码迷,mamicode.com
首页 > Web开发 > 详细

Linux 基础知识(十一)HTTPD

时间:2019-04-03 17:54:47      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:cat   over   virt   .com   配置文件   linux 基础   openssl   httpd   摘要认证   

超文本传输协议(英语:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。

?
(一)基于用户的访问控制
?
认证:Authorization:客户端用户填入账号和密码后再次发送请求报文;认证通过时,则服务器发送响应的资源;
?
认证方式有两种:
basic:明文
digest:消息摘要认证
?
?
basic认证配置示例
(1) 定义安全域

<Directory "">
        Options None
        AllowOverride None
        AuthType Basic
        AuthName "String“
        AuthUserFile  "/PATH/TO/HTTPD_USER_PASSWD_FILE"
        Require  user  username1  username2 ...
</Directory>

(2) 提供账号和密码存储
使用htpasswd命令进行维护
htpasswd? [OPTIONS]? passwdfile? ?userName
选项有:? ? ? ? ? ?
-c:添加第一个用户时创建此文件?
-m:md5格式加密用户密码存放?
-s:sha格式加密用户密码存放
-D:删除指定用户
-b:批模式添加用户

htpasswd -b  [options]   /PATH/TO/HTTPD_PASSWD_FILE  username password

基于组账号进行认证
(1) 定义安全域

<Directory "">
    Options None
    AllowOverride None
    AuthType Basic
    AuthName "String“
    AuthUserFile  "/PATH/TO/HTTPD_USER_PASSWD_FILE"
    AuthGroupFile "/PATH/TO/HTTPD_GROUP_FILE"
    Require  group  grpname1  grpname2 ...
</Directory>

(2) 创建用户账号和组账号文件;
组文件:每一行定义一个组
GRP_NAME: username1 username2

?
?

(二)虚拟主机

基于ip:为每个虚拟主机准备至少一个ip地址;

<VirtualHost 10.120.123.6:80>
    ServerName www.a.com
    DocumentRoot "/www/a.com/htdocs"
</VirtualHost>

<VirtualHost 10.120.123.7:80>
    ServerName www.b.net
    DocumentRoot "/www/b.net/htdocs"
</VirtualHost>

基于port:为每个虚拟主机使用至少一个独立的port;

<VirtualHost 10.120.123.6:80>
    ServerName www.a.com
    DocumentRoot "/www/a.com/htdocs"
</VirtualHost>

<VirtualHost 10.120.123.6:8080>
    ServerName www.b.net
    DocumentRoot "/www/b.net/htdocs"
</VirtualHost>

基于FQDN:为每个虚拟主机使用至少一个FQDN;

<VirtualHost 10.120.123.6:80>
    ServerName www.a.com
    DocumentRoot "/www/a.com/htdocs"
</VirtualHost>

<VirtualHost 10.120.123.6:80>
    ServerName www.b.net
    DocumentRoot "/www/b.net/htdocs"
</VirtualHost>

(三)HTTPS经由HTTP进行通信,但利用SSL/TLS来加密数据包
?
1.安装mod_ssl包,配置http支持https

yum -y install mod_ssl
httpd -M | grep ssl
ssl_module (shared)

2.建立私有CA
(1)生成私钥

(umask 077;openssl genrsa -out /etc/pki/CA/private/cakey.pem 4096)

(2)生成自签证书

 openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 3650

3.在服务器端创建签署请求,CA签证
(1)生成私钥

mkdir /etc/httpd/ssl
cd /etc/httpd/ssl
(umask 077; openssl genrsa -out /etc/httpd/ssl/httpd.key 2048)

(2)生成签署请求

openssl req -new -key httpd.key -out httpd.csr -days 365 

(3)CA签证

openssl ca -in httpd.csr -out /etc/httpd/ssl/httpd.crt -days 365

修改配置文件: vim /etc/httpd/conf.d/ssl.conf

<VirtualHost 10.120.123.6:443>
        ServerName www.a.com
        DocumentRoot /www/a.com/htdocs
        SSLengine ON
        SSLprotocol ALL -sslv2 -sslv3
        SSLcertificatefile /etc/httpd/ssl/httpd.crt
        SSLcertificatekeyfile /etc/httpd/ssl/httpd.key
</VirtualHost>

Linux 基础知识(十一)HTTPD

标签:cat   over   virt   .com   配置文件   linux 基础   openssl   httpd   摘要认证   

原文地址:https://blog.51cto.com/14074807/2373777

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!