Linux下Web服务器架构之网站安全解决方案
HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 它是一个URI scheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。https:URL表明它使用了HTTP,但HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)。这个系统的最初研发由网景公司进行,提供了身份验证与加密通讯方法,现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面。案例应用1:Web服务器架构之https1. 企业实现要求:
某公司要求在公司内部自行搭建CA证书服务器,用于提高证书服务(在windows server 2008上实现);并且为公司内部的WWW服务器提供证书服务,提供正常服务。
2. 案例应用简化拓扑图:
3.案例实现步骤:
(1)在windows server2008上搭建CA证书服务器
http://www.hx95.com/d/file/2012-03/90ce041164660fd88e9ad0059fe27183.png
http://www.hx95.com/d/file/2012-03/ec82dece9957c4755c1983f207ffec3a.png
http://www.hx95.com/d/file/2012-03/709255975d5e69dd69520766d70cd70f.png
http://www.hx95.com/d/file/2012-03/d50c2aa4e2c9588f276cc7503d7ca16c.png
(2)在web服务器上安装相应的软件
# mkdir /mnt/cdrom
# mount /dev/cdrom /mnt/cdrom/
# cd /mnt/cdrom/Server/
# rpm -ivh httpd-2.2.3-22.el5.i386.rpm
# yum install -y mod_ssl
(3)配置web服务器的虚拟主机
#创建网页文件
# cat html/index.html
--www
--xjzhujunjie
--2012/03/17
# cat tec/index.html
--tec
--xjzhujunjie
--2012/03/17
# cat mkt/index.html
--mkt
--xjzhujunjie
--2012/03/17
#编辑apache配置文件
# 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服务器,测试虚拟主机
# service httpd restart #重启apache服务
Win7客户端测试在C:WindowsSystem32driversetchosts添加:
192.168.101.250 www.junjie.com
192.168.101.250 tec.junjie.com
192.168.101.250 mkt.junjie.com
Win7客户端使用IE9浏览器测试结果如下(虚拟主机完成):
http://www.hx95.com/d/file/2012-03/dc3f0ace952002f967a18cfe2383d817.png
(5)为web服务器申请证书
# mkdir certs
# cd certs/
# openssl genrsa 1024 >httpd.key
# chmod 600 httpd.key
CN/HENAN/ZHENGZHOU/zzu/junjie/www.junjie.com/xjzhujunjie@hotmail.com///
在linux的web服务器上启动桌面环境,用于申请证书
在firefox浏览器中输入http://192.168.101.112/certsrv来申请证书
http://www.hx95.com/d/file/2012-03/b4ccc8bea97fc1cceeb8d097b1ed72e9.png
选择申请证书,即可进入申请证书页面,将刚才生成的请求文件填写在下面
http://www.hx95.com/d/file/2012-03/15348c4db1446379291149d95c95655f.png
http://www.hx95.com/d/file/2012-03/0a137a868e53f0f3eedc9415807e0f3a.png
可以看到,此时证书服务器已经向web服务器返回信息,提示正在审核中
此时进入windows server 2008证书服务器上,开始审核web服务器申请的证书,选择挂起的证书,即可看到web服务器提交的申请信息
http://www.hx95.com/d/file/2012-03/fd76bdffb905bf2ba70fdc557dc7418c.png
选择信息时,右键,所有任务,颁发证书,为web服务器颁发证书;接下来便可以在颁发的证书中看到已经颁发的证书;
http://www.hx95.com/d/file/2012-03/1f3a553a699f5e85525e6259016f0e77.png
Linux的web服务器再次在firefox浏览器中输入http://192.168.101.112/certsrv,查看挂起的证书,并下载证书
http://www.hx95.com/d/file/2012-03/04446c7b716a979aab95767f0c4df616.png
http://www.hx95.com/d/file/2012-03/e8eeb8b9814ac381807bec216137075a.png
http://www.hx95.com/d/file/2012-03/422223b2bbe4ec149eb344faa1c4920c.png
刚下载的证书,默认保存在桌面,将其移动到/etc/httpd/certs/下。
(6)修改web服务器证书文件
# 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
# service httpd restart #重启apache服务
(7)win7客户端使用https安全访问网页
使用win7的IE9测试,输入安全网址https://www.junjie.com
,此时浏览器提示安全警告,提示此网站的安全证书有问题,并将警告信息显示出来,具体如下:
http://www.hx95.com/d/file/2012-03/afece3ab8825d731495fcca0d0ae8603.png
如若:用户强制继续访问,侧依然可以访问,但是浏览器地址栏中,已经变成红色报警信息,提示此网站不安全
http://www.hx95.com/d/file/2012-03/6575945a18a7ce53ad23ad1a30e78b9b.png
http://www.hx95.com/d/file/2012-03/a27903d8cabd4350e12f534645705080.png
说明:在此由于我没有使用IE9浏览器,没有解决证书问题,故又使用搜狗浏览器来解决证书错误问题!若,你可以帮助我解决请在本文留言,多谢了!
使用搜狗浏览器警报信息如下:
http://www.hx95.com/d/file/2012-03/c6d2fe6331761bc74cbdd4c5c02488a4.png
此时,选择查看证书-证书路径-查看安装根证书和web服务器证书
http://www.hx95.com/d/file/2012-03/a4bfa7448d98dc54f4e62a055da12b81.png
http://www.hx95.com/d/file/2012-03/511143ee6e57d62880b4ebee2bfc6dd0.png
安装证书;
http://www.hx95.com/d/file/2012-03/fb7b2812e249b9c68c2c936fb8cf9cf6.png
选择是继续安装证书,接着再查看就没有证书问题了,如下所示:
http://www.hx95.com/d/file/2012-03/2d22a66bcbd3515c46fd425e5f3ae111.png
此时再win7下使用搜狗高速浏览器,Google Chrome 浏览器,Internet Explorer 9浏览器,都显示安全访问,如下所示:
http://www.hx95.com/d/file/2012-03/9762f96d5982a4b97a3aa41c3a70d2b8.png
***********************************************
案例应用1:Web服务器架构之https自签发
1.企业实现要求:
某公司要求在Linux上实现web服务器功能,并要求实现自签发证书(及要求:linux服务器即为web服务器又为证书服务器)
2.案例应用简化拓扑图:
http://www.hx95.com/d/file/2012-03/62deebdc955b23e0497f55d0f49c708b.png
3.案例实现步骤:
(1)在web服务器上安装相应的软件
# mkdir /mnt/cdrom
# mount /dev/cdrom /mnt/cdrom/
# cd /mnt/cdrom/Server/
# rpm -ivh httpd-2.2.3-22.el5.i386.rpm
# yum install -y mod_ssl
(2)创建CA证书服务器的根证书文件
# cd /etc/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
# cd /etc/pki/CA/
# mkdir certs crl newcerts
# touch index.txt serial
# echo "01" >serial
# openssl genrsa 1024 >private/cakey.pem
Generating RSA private key, 1024 bit long modulus
........................++++++
....++++++
e is 65537 (0x10001)
# chmod 600 private/cakey.pem
# openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 365
Country Name (2 letter code) :CN
State or Province Name (full name) :HENAN
Locality Name (eg, city) :ZHENGZHOU
Organization Name (eg, company) :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服务器的签发证书
# mkdir /etc/httpd/certs
#cd /etc/httpd/certs
# openssl genrsa 1024 >httpd.key
Generating RSA private key, 1024 bit long modulus
..............++++++
........++++++
e is 65537 (0x10001)
# chmod 600 httpd.key
# openssl req -new -key httpd.key -out httpd.csr
Country Name (2 letter code) :CN
State or Province Name (full name) :HENAN
Locality Name (eg, city) :ZHENGZHOU
Organization Name (eg, company) :zzu
Organizational Unit Name (eg, section) []:junjie
Common Name (eg, your name or your server's hostname) []:www.junjie.com
///
# openssl ca -in httpd.csr -out httpd.crt
# chmod 600 *
(4)为web服务器的签发证书
# cd /etc/httpd/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安全访问网页
# service httpd restart #重启apache服务
Win7客户端测试在C:WindowsSystem32driversetchosts添加:
192.168.101.250 www.junjie.com
使用win7的IE9测试,输入安全网址https://www.junjie.com
,此时浏览器提示安全警告,提示此网站的安全证书有问题,并将警告信息显示出来,具体如下:
http://www.hx95.com/d/file/2012-03/2838eb8b810787574633002c36775a6b.png
如若:用户强制继续访问,侧依然可以访问,但是浏览器地址栏中,已经变成红色报警信息,提示此网站不安全
http://www.hx95.com/d/file/2012-03/15599210873db479327426bc247affff.png
说明:在此由于我没有使用IE9浏览器,没有解决证书问题,故又使用搜狗浏览器来解决证书错误问题!若,你可以帮助我解决请在本文留言,多谢了!
使用搜狗解决问题方案如下:
http://www.hx95.com/d/file/2012-03/4043e8ad4dbf2e1c3c3dd05d65141a50.png
http://www.hx95.com/d/file/2012-03/7a59e9342a0cef4cbb937bfedb23d111.png
此时,选择查看证书-证书路径-查看安装根证书和web服务器证书
http://www.hx95.com/d/file/2012-03/5db38ae8f1b818f2d1a043f9508be1fd.png
安装证书;
选择是继续安装证书,接着再查看就没有证书问题了,如下所示:
此时再win7下使用搜狗高速浏览器,Internet Explorer 9浏览器,都显示安全访问,如下所示:
http://www.hx95.com/d/file/2012-03/530a7e3db2538966c883e6897d06be49.png
查看证书信息:
http://www.hx95.com/d/file/2012-03/e857c4f080d50730e8616837b5232aca.png
http://www.hx95.com/d/file/2012-03/e9362ca46940afb106b139cfee01aa4f.png
页:
[1]