一、身份验证

身份验证主要是对目录的安全性设置.

配置web服务器的身份验证:

vim /etc/httpd/conf/httpd.conf

<Directory "/var/www/html">必须在站点目录里面

AllowOverride all   //none改为all  该实验服务器上配置文件是在第338

< /Directory >

cd /var/www/html //进入站点主目录下创建 .htaccess文件


authuserfile    /var/www/.htpasswd    

authname"please input your name and password"

authtype        basic

require        valid-user

//这里提到了.htpasswd文件,这个文件是要生成的

[root@ahao www]#htpasswd -c .htpasswd  aaa //创建aaa用户密码123

New password: 123//这里只做演示、实验中密码是不显示的

Re-type new password:123

[root@ahao html]# echo "hello!!" >index.html//在服务器的默认站点上创建一个测试页面

//配置这些之后就可以了重启服务器,再次web访问就可以实现身份验证登录了。

wKiom1LZExbBh6GZAAGjqUHqN6o690.jpg


二、来源控制

在服务器的配置文件中有这样的配置:

<Directory "/var/www/html">

order allow,deny       //343

allow from all

< /Directory >

order allow.deny是表示我们验证这些IP是优先验证允许的还是拒绝的,allow在前就先验证,默认是这样。

如果想要控制只能固定IP可以登录就可以这样设置:

order denyallow

allow from  192.168.1.111

这样的配置方式就可以实现,这两条语句是顺序实现的,谁在前,谁先执行。


但是需要注意的是:来源控制和身份验证都必须在站点主目录下的配置文件中书写配置,其他地方视作无效。



三、加密访问(https

这里我们要实现一次web服务器的加密访问,实验过程是,服务器上实现数字证书,让主机识别数字证书,传递公钥,进行加密访问。


CA服务器配置

以为我们是在centos操作系统上为了简单快捷,我们使用openssl这种方式。
在我们当前系统下,openssl软件包是安装好了。

        [root@ahao~]# cd /etc/pki/    //pki,是公钥的基础设施

        [root@ahaotls]# vim openssl.cnf

[root@ahao CA]#touch index.txt   //配置文件中说明需要这个文件、文件主要存储发行证书的存储。

[root@ahao CA]#touch serial   //创建自身机构证书的存放文件

[root@ahao CA]#echo "01">serial   //设定序号

[root@ahao CA]#openssl genrsa 1024 >private/cakey.pem //使用openssl生成私钥文件

[root@ahao CA]#ll private/cakey.pem    rsa:加密算法

-rw-r--r--. 1root root 891 Nov 30 06:08 private/cakey.pem

[root@ahao CA]#chmod 600 private/cakey.pem  //以为这种文件是机密的,所以只能有管理员可以看到,所以更改权限

[root@ahao CA]#openssl req -new -key private/cakey.pem -x509 -out cacert.pem

//产生公钥文件

You are about tobe asked to enter information that will be incorporated

into yourcertificate request.

What you areabout to enter is what is called a Distinguished Name or a DN.

There are quitea few fields but you can leave some blank

For some fieldsthere will be a default value,

If you enter'.', the field will be left blank.

-----

Country Name (2letter code) [CN]:  //输入国家

State orProvince Name (full name) [HENAN]:  //输入省份

Locality Name(eg, city) [ZH]: //输入城市

OrganizationName (eg, company) [Default Company Ltd]:securecenter  // 组织名称

OrganizationalUnit Name (eg, section) []:tec //部门

Common Name (eg,your name or your server's hostname) []:rootca.net.org  //公用名

Email Address[]: //email 地址


Web服务器配置:

[root@ahao CA]#mkdir -pv /etc/httpd/certs  //服务器私钥、公钥文件存放位置

[root@ahao CA]#cd /etc/httpd/certs/

[root@ahaocerts]# openssl genrsa 1024 >httpd.key //创建私钥文件

[root@ahaocerts]# chmod 600 httpd.key

[root@ahao pki]#vim tls/openssl.cnf

[ policy_match ]        //设置可以颁发的证书的可选性,不会局限在某一地区或机构

85 countryName             = optional

86 stateOrProvinceName     = optional

87 organizationName        = optional

[root@ahaocerts]# openssl req -new -key httpd.key -out httpd.crq  //web服务器想CA请求证书的请求文件

You are about tobe asked to enter information that will be incorporated

into yourcertificate request.

What you areabout to enter is what is called a Distinguished Name or a DN.

There are quitea few fields but you can leave some blank

For some fieldsthere will be a default value,

If you enter'.', the field will be left blank.

-----

Country Name (2letter code) [CN]:

State orProvince Name (full name) [HENAN]:

Locality Name(eg, city) [ZH]:

OrganizationName (eg, company) [Default Company Ltd]:abc

OrganizationalUnit Name (eg, section) []:tec

Common Name (eg,your name or your server's hostname) []:www.abc.com

Email Address []:


Please enter thefollowing 'extra' attributes

to be sent withyour certificate request

A challengepassword []:

An optionalcompany name []:


[root@ahaocerts]# openssl ca -in httpd.crq  -outhttpd.cert //CA发放给web服务器的证书


web服务与证书的绑定

[root@ahaocerts]# yum  --disablerepo=\*--enablerepo=c6-media install mod_ssl  

[root@ahaocerts]# vim /etc/httpd/conf.d/ssl.conf //编辑ssl配置文件,需要告知web服务器证书与私钥存放的位置。

SSLCertificateFile /etc/httpd/certs/httpd.cert    //证书存放的目录          105

SSLCertificateKeyFile /etc/pki/httpd/certs/httpd.key  //私钥存放的目录       112

SSLCertificateChainFile/etc/pki/CA/cacert.pem   //主机也必须要能看到证书所在,所以还要指明CA服务器上,证书在哪里

[root@ahaocerts]# service httpd restart  //重启服务

Stoppinghttpd:                                           [  OK  ]

Starting httpd:                                             [  OK  ]


主机配置:

我们现在访问web服务器的话,肯定是不会成功的,以为我们的证书还没有安装到客户机上,并且我们web服务器证书上,指明了我们的Common Name www.abc.com,我们直接访问主机的ip是不会直接成功的,所以我们在试验中就将www.abc.com加入本地dns析文件中。

C:\WINDOWS\system32\drivers\etc\hosts添加一行:

192.168.1.199    www.abc.com


wKiom1LZE1LB1ZMiAACxO0asknA672.jpg

wKioL1LZE0nBx-FxAAE1FtawzQI818.jpg