Linux下Web服务器架构之网站安全解决方案WEB安全 -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【www.unjs.com - 电脑资料】

   

    HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版,

Linux下Web服务器架构之网站安全解决方案WEB安全

。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 它是一个URI scheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。https:URL表明它使用了HTTP,但HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)。这个系统的最初研发由网景公司进行,提供了身份验证与加密通讯方法,现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面。

    案例应用1:Web服务器架构之https

    1. 企业实现要求:

    某公司要求在公司内部自行搭建CA证书服务器,用于提高证书服务(在windows server 2008上实现);并且为公司内部的WWW服务器提供证书服务,提供正常服务。

    2. 案例应用简化拓扑图:

    3.案例实现步骤:

    (1)在windows server2008上搭建CA证书服务器

   

   

   

   

    (2)在web服务器上安装相应的软件

    [root@www ~]# mkdir /mnt/cdrom

    [root@www ~]# mount /dev/cdrom /mnt/cdrom/

    [root@www ~]# cd /mnt/cdrom/Server/

    [root@www Server]# rpm -ivh httpd-2.2.3-22.el5.i386.rpm

    [root@www ~]# yum install -y mod_ssl

    (3)配置web服务器的虚拟主机

    #创建网页文件

    [root@www www]# cat html/

    --www

    --xjzhujunjie

    --2012/03/17

    [root@www www]# cat tec/

    --tec

    --xjzhujunjie

    --2012/03/17

    [root@www www]# cat mkt/

    --mkt

    --xjzhujunjie

    --2012/03/17

    #编辑apache配置文件

    [root@www ~]# vim /etc/httpd/conf/httpd.conf

    134 Listen 80

    973 NameVirtualHost 192.168.101.111:80

    992

    993  ServerAdmin master@junjie.com

    994  DocumentRoot /var/www/html

    995  ServerName www.junjie.com

    996  ErrorLog logs/www-error_log

    997  CustomLog logs/www-access_log common

    998

    999

    1000  ServerAdmin master@junjie.com

    1001  DocumentRoot /var/www/tec

    1002  ServerName tec.junjie.com

    1003  ErrorLog logs/tec-error_log

    1004  CustomLog logs/tec-access_log common

    1005

    1006

    1007  ServerAdmin master@junjie.com

    1008  DocumentRoot /var/www/mkt

    1009  ServerName mkt.junjie.com

    1010  ErrorLog logs/mkt-error_log

    1011  CustomLog logs/mkt-access_log common

    1012

    (4)重启web服务器,测试虚拟主机

    [root@www ~]# service httpd restart     #重启apache服务

    Win7客户端测试在C:\Windows\System32\drivers\etc\hosts添加:

    192.168.101.250     www.junjie.com

    192.168.101.250     tec.junjie.com

    192.168.101.250     mkt.junjie.com

    Win7客户端使用IE9浏览器测试结果如下(虚拟主机完成):

   

    (5)为web服务器申请证书

    [root@www httpd]# mkdir certs

    [root@www httpd]# cd certs/

    [root@www certs]# openssl genrsa 1024 >httpd.key

    [root@www certs]# chmod 600 httpd.key

    CN/HENAN/ZHENGZHOU/zzu/junjie/www.junjie.com/xjzhujunjie@hotmail.com///

    在linux的web服务器上启动桌面环境,用于申请证书

    在firefox浏览器中输入http://192.168.101.112/certsrv来申请证书

   

    选择申请证书,即可进入申请证书页面,将刚才生成的请求文件填写在下面

   

   

    可以看到,此时证书服务器已经向web服务器返回信息,提示正在审核中

    此时进入windows server 2008证书服务器上,开始审核web服务器申请的证书,选择挂起的证书,即可看到web服务器提交的申请信息

   

    选择信息时,右键,所有任务,颁发证书,为web服务器颁发证书;接下来便可以在颁发的证书中看到已经颁发的证书;

   

    Linux的web服务器再次在firefox浏览器中输入http://192.168.101.112/certsrv,查看挂起的证书,并下载证书

   

   

   

    刚下载的证书,默认保存在桌面,将其移动到/etc/httpd/certs/下。

    (6)修改web服务器证书文件

    [root@junjie ~]# cd /etc/httpd/conf.d/ssl.conf

    112 SSLCertificateFile /etc/httpd/certs/httpd.cer

    119 SSLCertificateKeyFile /etc/httpd/certs/httpd.key

    128 SSLCertificateChainFile /etc/httpd/certs/cacert.p7b

    [root@www ~]# service httpd restart     #重启apache服务

    (7)win7客户端使用https安全访问网页

    使用win7的IE9测试,输入安全网址https://www.junjie.com

    ,此时浏览器提示安全警告,提示此网站的安全证书有问题,并将警告信息显示出来,具体如下:

   

    如若:用户强制继续访问,侧依然可以访问,但是浏览器地址栏中,已经变成红色报警信息,提示此网站不安全

   

   

    说明:在此由于我没有使用IE9浏览器,没有解决证书问题,故又使用搜狗浏览器来解决证书错误问题!若,你可以帮助我解决请在本文留言,多谢了!

    使用搜狗浏览器警报信息如下:

   

    此时,选择查看证书-证书路径-查看安装根证书和web服务器证书

   

   

    安装证书;

   

    选择是继续安装证书,接着再查看就没有证书问题了,如下所示:

   

    此时再win7下使用搜狗高速浏览器,Google Chrome 浏览器,Internet Explorer 9浏览器,都显示安全访问,如下所示:

   

    ***********************************************

    案例应用1:Web服务器架构之https自签发

    1.企业实现要求:

    某公司要求在Linux上实现web服务器功能,并要求实现自签发证书(及要求:linux服务器即为web服务器又为证书服务器)

    2.案例应用简化拓扑图:

   

    3.案例实现步骤:

    (1)在web服务器上安装相应的软件

    [root@www ~]# mkdir /mnt/cdrom

    [root@www ~]# mount /dev/cdrom /mnt/cdrom/

    [root@www ~]# cd /mnt/cdrom/Server/

    [root@www Server]# rpm -ivh httpd-2.2.3-22.el5.i386.rpm

    [root@www ~]# yum install -y mod_ssl

    (2)创建CA证书服务器的根证书文件

    [root@www ~]# cd /etc/pki/

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

    45 dir      =/etc/pki/CA      # Where everything is kept

    46 certs     = $dir/certs    # Where the issued certs are  kept

    47 crl_dir    = $dir/crl       # Where the issued crl are ke  pt

    48 database    = $dir/index.txt    # database index file.

    51 new_certs_dir = $dir/newcerts    # default place for new certs

    53 certificate  = $dir/cacert.pem   # The CA certificate

    54 serial     = $dir/serial     # The current serial number

    58 private_key  = $dir/private/cakey.pem# The private key

    88 countryName      = optional

    89 stateOrProvinceName  = optional

    90 organizationName    = optional

    [root@www pki]# cd /etc/pki/CA/

    [root@www CA]# mkdir certs crl newcerts

    [root@www CA]# touch index.txt serial

    [root@www CA]# echo "01" >serial

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

    Generating RSA private key, 1024 bit long modulus

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

    ....++++++

    e is 65537 (0x10001)

    [root@www CA]# chmod 600 private/cakey.pem

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

    Country Name (2 letter code) [GB]:CN

    State or Province Name (full name) [Berkshire]:HENAN

    Locality Name (eg, city) [Newbury]:ZHENGZHOU

    Organization Name (eg, company) [My Company Ltd]:zzu

    Organizational Unit Name (eg, section) []:junjie

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

    Email Address []:master@junjie.com

    (3)为web服务器的签发证书

    [root@www CA]# mkdir /etc/httpd/certs

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

    [root@www certs]# openssl genrsa 1024 >httpd.key

    Generating RSA private key, 1024 bit long modulus

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

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

    e is 65537 (0x10001)

    [root@www certs]# chmod 600 httpd.key

    [root@www certs]# openssl req -new -key httpd.key -out httpd.csr

    Country Name (2 letter code) [GB]:CN

    State or Province Name (full name) [Berkshire]:HENAN

    Locality Name (eg, city) [Newbury]:ZHENGZHOU

    Organization Name (eg, company) [My Company Ltd]:zzu

    Organizational Unit Name (eg, section) []:junjie

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

    ///

    [root@www certs]# openssl ca -in httpd.csr -out httpd.crt

    [root@www certs]# chmod 600 *

    (4)为web服务器的签发证书

    [root@www certs]# cd /etc/httpd/conf.d

    [root@www conf.d]# vim ssl.conf

    112 SSLCertificateFile /etc/httpd/certs/httpd.crt

    119 SSLCertificateKeyFile /etc/httpd/certs/httpd.key

    128 SSLCertificateChainFile /etc/pki/CA/cacert.pem

    (5)win7客户端使用https安全访问网页

    [root@www ~]# service httpd restart     #重启apache服务

    Win7客户端测试在C:\Windows\System32\drivers\etc\hosts添加:

    192.168.101.250     www.junjie.com

    使用win7的IE9测试,输入安全网址https://www.junjie.com

    ,此时浏览器提示安全警告,提示此网站的安全证书有问题,并将警告信息显示出来,具体如下:

   

    如若:用户强制继续访问,侧依然可以访问,但是浏览器地址栏中,已经变成红色报警信息,提示此网站不安全

   

    说明:在此由于我没有使用IE9浏览器,没有解决证书问题,故又使用搜狗浏览器来解决证书错误问题!若,你可以帮助我解决请在本文留言,多谢了!

    使用搜狗解决问题方案如下:

   

   

    此时,选择查看证书-证书路径-查看安装根证书和web服务器证书

   

    安装证书;

    选择是继续安装证书,接着再查看就没有证书问题了,如下所示:

    此时再win7下使用搜狗高速浏览器,Internet Explorer 9浏览器,都显示安全访问,如下所示:

   

    查看证书信息:

   

   

最新文章