Linux的广泛应用和快速发展得益于互联网的飞速发展。对于Internet上应用广泛的Web服务来说,Linux表现出色。很难说清目前Internet上究竟有多少个网站在使用Linux系统,但众多网站中采用Apache服务器的无疑占据了极大的市场份额。

怎么样为网站提供保护,防止非法用户登入呢?通常可以采用身份认证方式。身份认证是防止非法用户使用资源的有效手段,也是管理注册用户的有效方法。现在很多网站都使用身份认证来管理用户资源,对用户的访问权限进行严格地限制。传统的身份认证方法是通过检验用户的注册名、口令,来决定是否允许用户使用资源,但这种认证方法在某些情况下作用并不十分有效。特别是在Linux平台下的Apache服务器,完全可以用Linux的方法来实现密码验证和保护。

我们就通过windows平台的IISLinux平台的Apache来实现web服务器的身份验证、来源控制以及证书访问的https来。

Windows平台的IIS实现web站点的安全性

先要在Windows操作系统的计算机上安装windows组件IIS

163819455.png

搭建web站点需要有网站主目录,我们只是简单的建立一个主目录以供实验使用,我们需要在IIS添加我们网站的主目录。

163949193.png

Windows下实现web站点安全性的方法主要有三种:身份验证、来源控制以及https证书验证。

身份验证:


164318959.png

Web站点使用身份验证后,访问网站需要对身份进行验证,验证成功后方可访问网站。

164909127.png

来源控制:

165708941.png

网站实现https证书访问,由于实验环境的原因,我们就不做验证,只说一下设置方法。

165822419.png

Windows平台的三种web站点安全方式只是粗略的介绍一下,我们还是把精力放在Linux平台的apache站点安全,由于市场占有份额的问题。

Linux平台的Apache实现web站点的安全性

身份验证

我们的Red Hat Enterprise Linux 5.4 系统平台首先需要安装httpd服务(即Apache

[root@localhost~]# mkdir /mnt/cdrom                       建立光盘挂载点

[root@localhost~]# mount /dev/cdrom /mnt/cdrom  光盘挂载我们建立的挂载点

[root@localhost~]# rpm -ivh /mnt/cdrom/Server/httpd-2.2.3-31.el5.i386.rpm  安装httpd服务软件包

[root@localhost~]# rpm -ql httpd                                    查看httpd软件包安装产生的文件

这些前期准备工作准备好了,我们需要对站点的身份验证进行配置

Httpd.conf配置文件修改

170013204.png

在我们httpd服务的默认网站主目录建立一个简单的网页页面以供实验使用

[root@localhost~]# cd /var/www/html/

[root@localhosthtml]# ll

total 0

[root@localhosthtml]# echo "Hell welcome to my web" >index.html

产生身份验证的一个说明文件

[root@localhosthtml]# vim .htaccess

说明文件内容

authuserfile /var/www/.htpasswd                          验证使用的账号库文件

authname"please input your name and password"         身份验证对话框提示信息

authtype  basic                                                                 验证方式采用basic

require   valid-user                                                         身份验证通过

说明文件已经建好了,我们需要产生我们身份验证的账号库文件

[root@localhostwww]# htpasswd -c .htpasswd user    建立用户名为user的用户到.htpasswd账号库文件,第一次建立需要添加“-c”,以后添加账户不在需要添加此参数

New password:                                                                         输入两次密码

Re-type newpassword:

Adding passwordfor user user

[root@localhostwww]# cat .htpasswd

user:4h3Cakaq/NENk                             账号库文件中的用户名以及加密后的密码

这些工作做好之后,我们重启httpd服务

[root@localhostwww]# service httpd restart

Stoppinghttpd:                                           [  OK  ]

Startinghttpd:                                            [ OK  ]

在浏览器访问我们的web站点

170110132.png

来源控制

来源控制只需对httpd.conf配置文件进行修改就可以实现

我们测试web站点的主机ip地址为192.168.30.10,我们修改httpd.con配置文件除192.168.30.10外所有主机都可以访问。

170305559.png

修改过配置文件后,重启httpd服务,如果实验效果没有达到预期的来源控制效果,有可能是浏览器缓存的临时文件及cookies造成的,删除浏览器的临时文件和cookies即可。

170515677.png

加密访问https

由于http协议是以明文方式传递,有关金融或者机密的网站访问很可能会被窃听或者抓包,因此产生一种加密访问方式https,我们在访问一些购物网站或者银行的一些网站就会发现网址前缀是https,这些都是采用加密访问的网站。

原理:HTTPS在传输数据之前需要客户端(浏览器)与服务端(网站)之间进行一次握手,在握手过程中将确立双方加密传输数据的密码信息。TLS/SSL协议不仅仅是一套加密传输的协议,更是一件经过艺术家精心设计的艺术品,TLS/SSL中使用了非对称加密,对称加密以及HASH算法。握手过程的简单描述如下:

1.浏览器将自己支持的一套加密规则发送给网站。

2.网站从中选出一组加密算法与HASH算法,并将自己的身份信息以证书的形式发回给浏览器。证书里面包含了网站地址,加密公钥,以及证书的颁发机构等信息。

3.获得网站证书之后浏览器要做以下工作:

a) 验证证书的合法性(颁发证书的机构是否合法,证书中包含的网站地址是否与正在访问的地址一致等),如果证书受信任,则浏览器栏里面会显示一个小锁头,否则会给出证书不受信的提示。

b) 如果证书受信任,或者是用户接受了不受信的证书,浏览器会生成一串随机数的密码,并用证书中提供的公钥加密。

c) 使用约定好的HASH计算握手消息,并使用生成的随机数对消息进行加密,最后将之前生成的所有信息发送给网站。

4.网站接收浏览器发来的数据之后要做以下的操作:

a) 使用自己的私钥将信息解密取出密码,使用密码解密浏览器发来的握手消息,并验证HASH是否与浏览器发来的一致。

b) 使用密码加密一段握手消息,发送给浏览器。

5.浏览器解密并计算握手消息的HASH,如果与服务端发来的HASH一致,此时握手过程结束,之后所有的通信数据将由之前浏览器生成的随机密码并利用对称加密算法进行加密。

这里浏览器与网站互相发送加密的握手消息并验证,目的是为了保证双方都获得了一致的密码,并且可以正常的加密解密数据,为后续真正数据的传输做一次测试。另外,HTTPS一般使用的加密与HASH算法如下:

非对称加密算法:RSADSA/DSS

对称加密算法:AESRC43DES

HASH算法:MD5SHA1SHA256

其中非对称加密算法用于在握手过程中加密生成的密码,对称加密算法用于对真正传输的数据进行加密,而HASH算法用于验证数据的完整性。由于浏览器生成的密码是整个数据加密的关键,因此在传输的时候使用了非对称加密算法对其加密。非对称加密算法会生成公钥和私钥,公钥只能用于加密数据,因此可以随意传输,而网站的私钥用于对数据进行解密,所以网站都会非常小心的保管自己的私钥,防止泄漏。

TLS握手过程中如果有任何错误,都会使加密连接断开,从而阻止了隐私信息的传输。

原理图:

170853385.jpg

https通信的优点:


1)客户端产生的密钥只有客户端和服务器端能得到;

2
)加密的数据只有客户端和服务器端才能得到明文;

3
)客户端到服务端的通信是安全的。

      Linux平台可以通过工具实现opencaopensslopenca工具功能强大但使用设置起来比较繁琐,我们就是用比较简单一些的openssl来做本次的实验。

实验环境:Red Hat Enterprise Linux 5.4httpd-2.2.3-31.el5.i386.rpm

mod_ssl-2.2.3-31.el5.i386.rpm

拓扑图:

171134704.jpg

[root@localhost~]# rpm -qa |grep openssl

openssl-0.9.8e-12.el5        通过查询可知我们Linux平台已经安装过openssl软件包

[root@localhost~]# openssl –help        查看openssl使用方法以及参数

openssl:Error:'--help' is an invalid command.

Standard commands                       标准参数

asn1parse      ca             ciphers        crl            crl2pkcs7      

dgst           dh             dhparam        dsa            dsaparam      

enc            engine         errstr         gendh          gendsa        

genrsa         nseq           ocsp           passwd         pkcs12        

pkcs7          pkcs8          prime          rand           req            

rsa            rsautl         s_client       s_server       s_time        

sess_id        smime          speed          spkac          verify        

version        x509          


Message Digestcommands (see the `dgst' command for more details)     摘要参数

md2            md4            md5            rmd160         sha            

sha1          


Cipher commands(see the `enc' command for more details)                     密文参数

aes-128-cbc    aes-128-ecb    aes-192-cbc    aes-192-ecb    aes-256-cbc    

aes-256-ecb    base64         bf             bf-cbc         bf-cfb        

bf-ecb         bf-ofb         cast           cast-cbc       cast5-cbc      

cast5-cfb      cast5-ecb      cast5-ofb      des            des-cbc        

des-cfb        des-ecb        des-ede        des-ede-cbc    des-ede-cfb    

des-ede-ofb    des-ede3       des-ede3-cbc   des-ede3-cfb   des-ede3-ofb  

des-ofb        des3           desx           rc2            rc2-40-cbc    

rc2-64-cbc     rc2-cbc        rc2-cfb        rc2-ecb        rc2-ofb        

rc4            rc4-40        

实现摘要

文件  openssl md5/sha 文件名

信息      echo  “信息” |openssl md5/sha

[root@localhost~]# openssl md5 install.log

MD5(install.log)=015db88dd2ead03e585b19dc896f21ee

[root@localhost~]# echo "hello" |openssl sha

ddedaa052ea8a1b8f827fc0a209a464158898a10

实现文件加密

openssl   des3(加密算法) -a64为编码)-in 输入文件名–out 输出文件名

[root@localhost ~]#openssl des3 -a -in install.log -out f1

enter des-ede3-cbcencryption password:

Verifying - enterdes-ede3-cbc encryption password:

[root@localhost~]# vim f1


U2FsdGVkX18ZgiqH5RB8hOeKLKGqg/Y2NNLYSvV4sqMM9Rga56NafuV5SpixRD1Z

LRYjk//8tVjN2WL39io1L7NSTdUDOMX6eIgfBeAXpOeLHvrqjOjypwmdc9+KB6Kw

EloE1DukzjEGQ1tALNg6X5zSJwgZbQFUBBt6ik7ESLDzMdL/Peg02ExNKKJA1nO1

tT3InJSNXkjSSsXzMD0UR4sf6zJ8+Kgrz+H1KDmewKSeYIEOV/GjwDFHV2geFpaa

GaeoyCRZd1RT6RGODX62hZ4BNitZ7Y6gcshjU3vE/gk/V/7PTuw9KQU3msEzV4Cr

7IVIBrse6pV+BT28G0hMFhcj5WOFM6bInKWE5uzbJPsXRD6V5szdBpPGskmgn0D1

VBvqgNkLC8Lj8eIANLyelUMZef8ScKk+mmOrm2ZarEXaqy5jtJWqS1t8xAyNZ7Di

SHwwtrTThPsrtV9cgbIrshouPyPGg76j+qibYST9l23XifOSt4PJ/GMpZX2yv88L

T17mFL3IgOncgkIQRQkeQFDNIhniiX/6FibIQgcoGQVdqmzDAA/fMPOJEkwQdXmV

tVti+e7AWGR2H29EAO9lPbPl24R5OocgWYi1fBxeAZDUqqnlmlg2HCo7dlhpftKi

KN0MFeFes6KwjzgEFLGs7d9k55Tvyh6lGFO/UeELxEHldKBpOfnFODO58ytlSGZN

6D8bS09cDJ7X5FDGEY8LOnjrGuwf3l6nH3kek/bGpM74Y50/22vu+ykQLCRw0YQm

7hUwdj1xCZiRNgUc6k18uXeQsFUft95elpZUB8duadBJgRLaRqt2DOWwoTpddRZI

tTHUdSXd1HZwkX4mcvC5iHvFl20bdjAkq8s4bCR5ctP3V+rb0HBzrE2YgvVNT+9F

V4IY+B7sNie9aTY5LAPRCXRcL7XXDLUZwsB/Cz8ESga6Mr18ayjinimR/bZqbRZt

akt1oR1P3L47PPoIl21l4xz0/cBOZ6iIeByNRH29lK+UmC8m5urd5vDLNlPAUuHR

bYC0isM0tu3MvWuLO3L2FYxES9Fj9z1IzhtmaGPqF+/rPzhG29RtX94vfkqkfoLw

huNoML+GAwlx2x+q+kCx/NH3WZBr/8OZUjJa1OCtocbpzaMzf3e3eze3ywwCKHfO

igIBJCEz+kfSmRpgRbL/jY+KiUTcTbJOzRECRf2CGl8WwAzjiWd9Msk8MFMCaHFE

文件解密

openssl des3(加密时使用的加密算法)-a(采用64位编码的加密)-d(解密是添加参数)-in 要解密的加密文件名–out 解密后的文件名

[root@localhost~]# openssl des3 -a -d -in f1 -out f2

enter des-ede3-cbcdecryption password:

生成自己的1024位私钥并将私钥写入privatekey.pem文件,对其修改权限以增加私钥安全性。

[root@localhost~]# openssl genrsa 1024 >privatekey.pem

Generating RSAprivate key, 1024 bit long modulus

..++++++

....++++++

e is 65537 (0x10001)

[root@localhost~]# ll

total 1

-rw-r--r-- 1 rootroot   887 Aug 23 21:34 privatekey.pem

[root@localhost~]# chmod 600 privatekey.pem

[root@localhost~]# ll

total 1

-rw------- 1 rootroot   887 Aug 23 21:34 privatekey.pem

查看私钥文件privatekey.pem文件内容

[root@localhost~]# vim privatekey.pem


-----BEGIN RSAPRIVATE KEY-----

MIICXAIBAAKBgQDdkWD6caEH9NatMNgcJ0tJMTQRzTPzS+QHG9R1HiJcE9IqZToN

eBcFF6dFcVkkfGZB/qnuXlPfOss/AnQyZ/zjvn9IwSlf7l4kkmYyg2a5i2BxlazF

GuCiwWke+lR8cyI3UzlYpehthiWxIM+7zoTRXZbiIPTrquDLn8dU0XSoiwIDAQAB

AoGBAIcXGn/YRAxr1XAnNbyEoLxxiYPJD4GppdBHwZPe2ag2VY+PxINt0utB7rTC

VU2Po3FdahJx5MVYPY+fWWVaTa8ThSetnX4i8URlPz/cT2YB0TwuCvkfqLGGlb7V

MoGMAZ2Hb+xv/oKDaTD1DnocuaZU5Ee+oOJyJ844KdfXYKNxAkEA8bJunaBHd8QT

h2x4HF6xQGV/DkS45DtM5KMUUyYwpAO/9gFjj4KHXJfgdZ2SfdPQ2xEP0Le+Zb/8

ytTfzT4DXQJBAOquAKAgRTE4haETF3gq7yhtXx1hamn3A3n8jcRfxuROFYOMEND7

QyMi5bTzWuvTT0VLz5qd9nkZEPMO7bYcxQcCQBrzlrolAVMtni/fvJUNSh6wMrbY

mvV4V163gLC09X+Um3dHOF7sY0PD+9ehtpApaoTDJkxT8PtPqVTE4B/25lECQBl6

WJEJz9k/JKrPEs42Aw7liNz8tXvZmGQG+jEmoMYqgAVvEGhPzwMih8O0Y9uUble8

mkZT/e05vnBU35PU3cMCQBPhetbrAIgSvG0mx/x3x3TZgcIuNioI8iI0l1cBhXEG

cxz+A5Hm9YpItivzWGAjjmMYvzCKr4DPQoWJ+lqn5XU=

-----END RSAPRIVATE KEY-----

公钥是由私钥文件中提取出来的

[root@localhost~]# openssl rsa -in privatekey.pem -pubout -out public.key

writing RSA key

[root@localhost~]# ll

total 1

-rw-r--r-- 1 rootroot   272 Aug 23 21:48 public.key

查看私钥文件中提取出来的公钥文件

[root@localhost~]# vim public.key


-----BEGIN PUBLICKEY-----

MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDdkWD6caEH9NatMNgcJ0tJMTQR

zTPzS+QHG9R1HiJcE9IqZToNeBcFF6dFcVkkfGZB/qnuXlPfOss/AnQyZ/zjvn9I

wSlf7l4kkmYyg2a5i2BxlazFGuCiwWke+lR8cyI3UzlYpehthiWxIM+7zoTRXZbi

IPTrquDLn8dU0XSoiwIDAQAB

-----END PUBLICKEY-----

搭建CA认证中心

证书申请流程:实体私钥 ---》请求文件  ---》证书

CA   私钥  ---》证书

由于我们搭建的是根CA,所以不需要产生请求文件,只需要直接产生证书。

修改/etc/pki/tls/openssl.cnf配置文件

171245836.png

[root@localhost~]# cd /etc/pki/CA/            

[root@localhostCA]# ll

total 8

drwx------ 2 rootroot 4096 Jun 30  2009 private

[root@localhostCA]# mkdir certs newcerts crl

[root@localhostCA]# touch index.txt serial

[root@localhostCA]# ll

total 20

drwxr-xr-x 2 rootroot 4096 Aug 23 22:14 certs

drwxr-xr-x 2 rootroot 4096 Aug 23 22:14 crl

-rw-r--r-- 1 rootroot    0 Aug 23 22:14 index.txt

drwxr-xr-x 2 rootroot 4096 Aug 23 22:14 newcerts

drwx------ 2 rootroot 4096 Jun 30  2009 private

-rw-r--r-- 1 rootroot    0 Aug 23 22:14 serial

[root@localhostCA]# echo "01" >serial       由于serial文件是证书的序列号,我们需要给它赋值,这里就赋值01给它

由于我们搭建的是CA验证中心,需要有执照证明具有一定的权威性,现在需要产生CA中心的私钥文件,我们采用1024位的私钥。

[root@localhostCA]# openssl genrsa 1024 >private/cakey.pem

Generating RSAprivate key, 1024 bit long modulus

............++++++

..........................++++++

e is 65537(0x10001)

[root@localhostCA]# ll private/

total 4

-rw-r--r-- 1 rootroot 887 Aug 23 22:20 cakey.pem

我们的私钥并不是任何人都能够读取,对其修改权限,只允许管理员读取。

[root@localhostCA]# chmod 600 private/*

root@localhostCA]# ll private/

total 4

-rw------- 1 rootroot 887 Aug 23 22:20 cakey.pem

CA证书的产生

openssl.cnf配置文件中修改我们搭建CA认证中心的条件,我们在上边已经配置过了,这里就不必再次配置了。

我们在产生证书的时候会要求我们输入有关信息,我们在openssl.cnf配置文件中修改这些默认值,并将证书信息匹配策略的match修改为optional

171939299.png

171849219.png

产生CA认证中心的运行执照

[root@localhostCA]# 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 are aboutto enter is what is called a Distinguished Name or a DN.

There are quite afew 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 or ProvinceName (full name) [HeNan]:

Locality Name (eg,city) [ZhengZhou]:

Organization Name(eg, company) [zzdx]:

OrganizationalUnit Name (eg, section) []:tec

Common Name (eg,your name or your server's hostname) []:rootca.net

Email Address []:

[root@localhostCA]# ll

total 28

-rw-r--r-- 1 rootroot 1119 Aug 24 14:44 cacert.pem

drwxr-xr-x 2 rootroot 4096 Aug 23 22:14 certs

drwxr-xr-x 2 rootroot 4096 Aug 23 22:14 crl

-rw-r--r-- 1 rootroot    0 Aug 23 22:14 index.txt

drwxr-xr-x 2 rootroot 4096 Aug 23 22:14 newcerts

drwx------ 2 rootroot 4096 Aug 23 22:20 private

-rw-r--r-- 1 rootroot    2 Aug 23 22:15 serial

我们的CA认证中心已经搭建好了,现在需要配置web服务器。http服务默认端口是80,其他额外功能的实现需要去添加模块,我们使用的https访问,使用的是443端口。

查看系统是否已经安装实现https功能的模块

[root@localhost~]# rpm -qa |grep mod_ssl*

[root@localhost~]#                         查询得知系统没有安装此模块

由于mod_ssl模块的安装需要distcache软件包的支持,我们需要先安装distcache软件包。

[root@localhost~]# rpm -ivh /mnt/cdrom/Server/distcache-1.4.5-14.1.i386.rpm

warning:/mnt/cdrom/Server/distcache-1.4.5-14.1.i386.rpm: Header V3 DSA signature:NOKEY, key ID 37017186

Preparing...               ########################################### [100%]

  1:distcache             ########################################### [100%]

[root@localhost~]# rpm -ivh /mnt/cdrom/Server/mod_ssl-2.2.3-31.el5.i386.rpm

warning:/mnt/cdrom/Server/mod_ssl-2.2.3-31.el5.i386.rpm: Header V3 DSA signature:NOKEY, key ID 37017186

Preparing...               ########################################### [100%]

  1:mod_ssl                ###########################################[100%]

我们的web服务器的https模块已经安装好了,现在需要产生web服务器私钥、证书请求文件以及证书。

[root@localhost~]# mkdir -pv /etc/httpd/certs  产生一个单独的目录存放web

mkdir: createddirectory `/etc/httpd/certs'      器的私钥、证书请求文件以及证书

[root@localhost~]# cd /etc/httpd/certs/

[root@localhostcerts]# ll

total 0

[root@localhostcerts]# openssl genrsa 1024 >httpd.key               产生私钥

Generating RSAprivate key, 1024 bit long modulus

...++++++

..........................................++++++

e is 65537(0x10001)

[root@localhostcerts]# chmod 600 httpd.key                         修改私钥文件权限

证书请求文件的产生

[root@localhostcerts]# openssl req -new -key httpd.key -out httpd.req

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

into yourcertificate request.

What you are aboutto enter is what is called a Distinguished Name or a DN.

There are quite afew 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 or ProvinceName (full name) [HeNan]:

Locality Name (eg,city) [ZhengZhou]:

Organization Name(eg, company) [zzdx]:

OrganizationalUnit Name (eg, section) []:tec

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

Email Address []:


Please enter thefollowing 'extra' attributes

to be sent withyour certificate request

A challengepassword []:

An optionalcompany name []:

使用证书请求文件请求CA中心颁发证书文件

[root@localhostcerts]# openssl ca -in httpd.req -out httpd.cert

Usingconfiguration from /etc/pki/tls/openssl.cnf

Check that the requestmatches the signature

Signature ok

CertificateDetails:                                                      证书相关信息

       Serial Number: 1 (0x1)

       Validity

           Not Before: Aug 24 07:20:11 2013GMT

           Not After : Aug 24 07:20:11 2014GMT

       Subject:

           countryName               = CN

           stateOrProvinceName       = HeNan

           organizationName          = zzdx

           organizationalUnitName    = tec

           commonName                = www.tec.com

       X509v3 extensions:

           X509v3 Basic Constraints:

               CA:FALSE

           Netscape Comment:

               OpenSSL Generated Certificate

           X509v3 Subject Key Identifier:

              43:FB:16:15:53:E8:75:66:01:89:27:7B:EA:5B:57:1A:F6:97:F0:BC

           X509v3 Authority Key Identifier:

              keyid:7E:12:A9:27:B8:F9:1B:C5:AD:88:AC:B0:92:C0:96:4F:36:BA:7E:1F


Certificate is tobe certified until Aug 24 07:20:11 2014 GMT (365 days)

Sign thecertificate? [y/n]:y                                        是否签发证书,当然是“y



1 out of 1certificate requests certified, commit? [y/n]y

Write out databasewith 1 new entries

Data Base Updated                                       我们CA中心的数据库文件已经更新

Web服务器与我们的证书捆绑

173220960.png

root@localhost ~]#service httpd restart          重启httpd服务

Stopping httpd:                                           [  OK  ]

Startinghttpd:                                            [  OK  ]

[root@localhost~]# netstat -tupln |grep httpd     查看httpd打开的端口

tcp   0   0:::80    :::*                          LISTEN      4136/httpd          

tcp   0   0:::443      :::*                        LISTEN      4136/httpd          

https访问的443端口已经打开,我们可以使用https访问我们的web站点。

173442790.png

由于我们客户端没有安装访问该网站的证书导致的,我们只需将配置文件中添加信任我们CA中心的证书就会解决问题。

173523719.png

重启httpd服务,重新使用https访问我们的web站点。

173603169.png

此时的证书错误是由站点名称与我们CA认证中心颁发证书的站点名称不同造成的,我可以可以重新请求CA中心颁发站点名称是192.168.30.100的证书,也可以通过DNS解析我们的站点名称,简单的话我们只需修改一下客户机的hosts文件就可以了。

173634671.png

再次访问我们的web站点,输入我们的站点名称www.tec.com(此站点名称是CA证书颁发给站点的名称),证书各项验证通过,不会再出现证书错误的问题了。

173720895.png

现在我们的web站点可以通过https加密的方式访问了,使用http的明文访问方式已经没有必要了,我们需要在httpd的配置文件将80端口给禁用掉,web站点就只能使用加密的https访问,不能使用明文的http访问。

173755972.png

[root@localhost~]# service httpd restart

Stoppinghttpd:                                           [  OK  ]

Startinghttpd:                                            [ OK  ]

[root@localhost~]# netstat -tupln |grep httpd

tcp   0   0:::443      :::*                        LISTEN      4292/httpd  

此时我们再次使用http明文方式访问我们的站点将无法访问。

173836938.png

上述内容就是我们通过身份验证、来源控制以及https加密访问三种方式来为windows平台和Linux平台的web站点提供安全。