httpd2.2实现虚拟主机+证书认证+DNS

httpd2.2实现虚拟主机+证书认证+DNS

目的:

1、 在一台虚拟机上安装httpd2.2,在上面提供两个基于名称的虚拟主机:

(1)www.X.com,页面文件目录为/web/vhosts/x;错误日志为/var/log/httpd/x.err,访问日志为/var/log/httpd/x.access;
      (2)www.Y.com,页面文件目录为/web/vhosts/y;错误日志为/var/log/httpd/y.err,访问日志为/var/log/httpd/y.access;
      (3)为两个虚拟主机建立各自的主页文件index.html,内容分别为其对应的主机名;
      (4)通过www.X.com/server-status输出httpd工作状态相关信息;

2、为上面的第2个虚拟主机提供https服务,使用户可以通过https安全访问此web站点

3、另一台虚拟机上搭建DNS,提供www.X.com和www.Y.com 域名解析

4、搭建CA做证书认证

提示:httpd服务为一台虚拟机,CA认证和DNS为另一台虚拟机

环境:

httpd服务器虚拟机:

系统:CentOS6.9

IP:172.18.76.161

目的:实现目的1、2

网络连接方式:桥接(可以使用仅主机)

地址段:和本机一致

防火墙、SElinux:关闭(命令:server iptables stop;setenforce 0)

CA、DNS服务器虚拟机:

系统:CentOS6.9

IP:172.18.76.4

目的:实现目的3、4

网络连接方式:桥接(可以使用仅主机)

地址段:和本机一致

防火墙、SElinux:关闭(命令:server iptables stop;setenforce 0)

本机:

目的:测试实验是否成功

实验步骤:

1、搭建DNS

(1)安装DNS:yum install bind

(2)编辑配置文件/etc/named.conf

(3)编辑配置文件/etc/named.rfc1912.zones

(4)在/var/named/下创建a.com.zone和b.com.zone文件

a.com.zone

b.com.zone

(5)开启DNS服务,命令:server named start,

(6)测试DNS,命令:dig www.a.com ; dig www.b.com

2、安装和配置httpd2.2

(1)安装httpd;命令:yum install httpd

(2)配置两台虚拟主机

先注释掉主配置文件指向的目录,主配置文件:/etc/httpd/conf/httpd.conf

在/etc/httpd/conf.d/目录下建自己的配置文件myhttpd.conf

命令:vim /etc/httpd/conf.d/myhttpd.conf

myhttpd.conf代码:

1 NameVirtualHost *:80
         2 <VirtualHost *:80>
         3 DocumentRoot /web/vhosts/x
         4 ServerName www.a.com
         5 ErrorLog /var/log/httpd/x.err
         6 CustomLog  /var/log/httpd/x.access common
         7 <Location /server-status>
         8 SetHandler server-status
         9 </Location>
        10 </VirtualHost>
        11 <VirtualHost *:80>
        12 DocumentRoot /web/vhosts/y
        13 ServerName www.b.com
        14 ErrorLog /var/log/httpd/y.err
        15 CustomLog  /var/log/httpd/y.access common
        16 </VirtualHost>

(3)准备相应的目录和文件

(4)重启httpd服务,命令:server httpd restart;这时我们的网站可以正常访问了,如果用本机测试要让本机的DNS指向我们自己的DNS服务器,刚刚搭建的DNS的IP:172.18.76.4

(5)浏览器输入地址测试

现在是用的http://访问没问题,但用httpds访问会提示这个链接不安全

3 安装mod_ssl和搭建CA

(1)在httpd服务机器上安装mod_ssl;命令:yum -y install mod_ssl

(2)在另一台虚拟机上搭建CA

创建所需要的文件:
            touch /etc/pki/CA/index.txt 生成证书索引数据库文件
            echo 01 > /etc/pki/CA/serial 指定第一个颁发证书的序列号
            生成私钥:
             cd /etc/pki/CA/
            (umask 066; openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048)

生成自签名证书:
            openssl req -new -x509 –key /etc/pki/CA/private/cakey.pem -days 7300 -out /etc/pki/CA/cacert.pem

(3)在httpd服务器生成私钥:
            (umask 066; openssl genrsa -out /etc/pki/tls/private/httpd.key 2048)
        (4)生成证书申请文件:
            openssl req -new -key /etc/pki/tls/private/httpd.key -days 365 -out /etc/pki/tls/httpd.csr

将生成的申请文件传给CA服务器

scp /etc/pki/tls/httpd.csr [email protected]:

(5)CA签署证书,并将证书颁发给请求者
            openssl ca -in httpd.csr -out /etc/pki/CA/certs/httpd.crt -days 365

scp /etc/pki/CA/certs/httpd.crt [email protected]:/etc/pki/tls/certs/

将根证书也给httpd服务器

scp /etc/pki/CA/cacert.pem [email protected]:/etc/pki/tls/certs/

(6)在httpd服务器上配置文件:/etc/httpd/conf.d/ssl.conf

重启httpd服务

(7)本机浏览器安装证书

这里配置了网站证书路径和CA证书路径,所以浏览器支持直接安装证书,直接安装就可以了,如果不能就可以选择手动导入根证书。

在导入证书前要先将根证书(cacert.pem)传到桌面上,然后修改后缀为.crt。

点击设置,里面有个Internet选项

到此,实验成功结束。

时间: 2024-08-06 16:42:51

httpd2.2实现虚拟主机+证书认证+DNS的相关文章

源码编译安装httpd2.4及虚拟主机

1.安装apr,apr-utils,pcre-devel和openssl-devel [[email protected] ~]# tar xf apr-1.5.1.tar.gz [[email protected] ~]# tar xf apr-util-1.5.3.tar.gz  [[email protected] apr-1.5.1]# cd apr-1.5.1 [[email protected] apr-1.5.1]# ./configure --prefix=/usr/local/

基于httpd-2.2和httpd-2.4配置虚拟主机web站点,并提供https服务(二)

使用httpd-2.2和httpd-2.4实现 > 1.建立httpd服务,要求: > 1) 提供两个基于名称的虚拟主机www1, www2:要求每个虚拟主机都有单独的错误日志和访问日志: > 2) 通过www1的/server-status提供状态信息,且仅允许172.16.0.1主机访问: > 3) www2不允许192.168.1.0/24网络中任意主机访问: > 2.为上面的第2)个虚拟主机提供https服务. > 二.基于httpd-2.4配置虚拟主机web站

基于httpd-2.4配置虚拟主机web站点,并提供https服务(二)

使用httpd-2.2和httpd-2.4实现 > 1.建立httpd服务,要求: > 1) 提供两个基于名称的虚拟主机www1, www2:要求每个虚拟主机都有单独的错误日志和访问日志: > 2) 通过www1的/server-status提供状态信息,且仅允许172.16.0.1主机访问: > 3) www2不允许192.168.1.0/24网络中任意主机访问: > 2.为上面的第2)个虚拟主机提供https服务. > 基于httpd-2.4配置虚拟主机web站点,

httpd-2.2项目(虚拟主机、用户认证、私有网络安全实现)

实验环境 提供两个基于名称的虚拟主机 wp.mykernel.cn,页面文件目录为/web/vhosts/www1:错误日志为/var/log/httpd/www1.err,访问日志为/var/log/httpd/www1.access: www.mykernel.cn, 页面文件目录为/web/vhosts/www2:错误日志为/var/log/httpd/www2.err,访问日志为/var/log/httpd/www2.access: 为两个虚拟主机建立各自的主页文件index.html,

基于httpd-2.2和httpd-2.4配置虚拟主机web站点,并提供https服务(一)

使用httpd-2.2和httpd-2.4实现 > 1.建立httpd服务,要求: > 1) 提供两个基于名称的虚拟主机www1, www2:要求每个虚拟主机都有单独的错误日志和访问日志: > 2) 通过www1的/server-status提供状态信息,且仅允许172.16.0.1主机访问: > 3) www2不允许192.168.1.0/24网络中任意主机访问: > 2.为上面的第2)个虚拟主机提供https服务. > 一.使用httpd-2.2实现基于主机名的虚拟

基于httpd-2.2配置虚拟主机web站点,并提供https服务(一)

使用httpd-2.2和httpd-2.4实现 > 1.建立httpd服务,要求: > 1) 提供两个基于名称的虚拟主机www1, www2:要求每个虚拟主机都有单独的错误日志和访问日志: > 2) 通过www1的/server-status提供状态信息,且仅允许172.16.0.1主机访问: > 3) www2不允许192.168.1.0/24网络中任意主机访问: > 2.为上面的第2)个虚拟主机提供https服务. > 使用httpd-2.2实现基于主机名的虚拟主机

httpd-2.4实现虚拟主机、访问控制及https功能

准备工作:在Centos7中安装httpd,使用yum安装或自己编译安装,建议使用yum安装,快捷又方便. 关闭防火墙及selinux. 提供两个基于名称的虚拟主机www1, www2:有单独的错误日志和访问日志: 先建立虚拟主机www1 a.在httpd的辅助配置文件目录/etc/httpd/conf.d/中创建属于虚拟主机自己的配置文件 ~]# vim /etc/httpd/conf.d/vhosts-www1.conf <VirtualHost 192.168.127.128:80>  

Nginx安装,默认虚拟主机以及认证和重定向

Nginx安装 1.首先下载安装包 [[email protected] src]# wget http://nginx.org/download/nginx-1.12.2.tar.gz --2018-03-14 00:46:57-- http://nginx.org/download/nginx-1.12.2.tar.gz 正在解析主机 nginx.org (nginx.org)... 206.251.255.63, 95.211.80.227, 2606:7100:1:69::3f, ...

httpd-2.2和httpd-2.4虚拟主机的实现

1.建立httpd服务,要求:  (1) 提供两个基于名称的虚拟主机www1, www2:有单独的错误日志和访问日志:   (2) 通过www1的/server-status提供状态信息,且仅允许tom用户访问:  (3) www2不允许192.168.0.0/24网络中任意主机访问:2.为上面的第2个虚拟主机提供https服务: 实验要求并不多,但是考虑到仅仅是为了测试,所以域名无需去互联网申请,也无需到互联网中的根CA注册证书,一切自给自足即可.为了达成实验要求,我准备了四台虚拟机,一台Ce