Linux下Web服务器应用之网站安全-https

简介:

Linux下Web服务器应用之网站安全(https)解决方案

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服务器应用之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/index.html
--www
--xjzhujunjie
--2012/03/17
[root@www www]# cat tec/index.html
--tec
--xjzhujunjie
--2012/03/17
[root@www www]# cat mkt/index.html
--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 <VirtualHost 192.168.101.111:80>
 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 </VirtualHost>
 999 <VirtualHost 192.168.101.111:80>
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 </VirtualHost>
1006 <VirtualHost 192.168.101.111:80>
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 </VirtualHost>
(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浏览器,都显示安全访问,如下所示:

 

查看证书信息:

 

《完》



本文转自xjzhujunjie 51CTO博客,原文链接:http://blog.51cto.com/xjzhujunjie/808983

相关文章
|
4天前
|
前端开发 Java 测试技术
Java一分钟之Spring MVC:构建Web应用
【5月更文挑战第15天】Spring MVC是Spring框架的Web应用模块,基于MVC模式实现业务、数据和UI解耦。常见问题包括:配置DispatcherServlet、Controller映射错误、视图解析未设置、Model数据传递遗漏、异常处理未配置、依赖注入缺失和忽视单元测试。解决这些问题可提升代码质量和应用性能。注意配置`web.xml`、`@RequestMapping`、`ViewResolver`、`Model`、`@ExceptionHandler`、`@Autowired`,并编写测试用例。
55 3
|
1天前
|
缓存 监控 安全
Django框架在大型Web应用中的架构设计与实战
【5月更文挑战第18天】Django框架在构建大型Web应用中扮演重要角色,采用分层架构(数据、业务逻辑、表示层)和多应用组织模式,结合缓存策略(如Memcached、Redis)提升性能。通过异步处理、分布式部署提高响应速度和扩展性。关注数据分区、安全设计及监控日志,确保系统高效、稳定。Django为复杂业务提供坚实基础,助力打造卓越Web系统。
18 7
|
1天前
|
开发框架 中间件 数据库
Django 框架入门全攻略:轻松构建 Web 应用
【5月更文挑战第18天】本文是 Django 入门教程,介绍了如何使用 Django 构建 Web 应用。内容包括安装、项目与应用创建、模型定义、数据库迁移、视图编写、路由配置、模板系统、表单处理和中间件的使用。通过实例展示了 Django 基本流程,帮助初学者快速上手。Django 提供高效工具,便于开发者聚焦业务逻辑,轻松构建功能丰富的 Web 应用。
16 5
|
1天前
|
存储 缓存 API
Flask 框架在大型 Web 应用中的使用与挑战
【5月更文挑战第18天】Flask框架适用于快速开发轻量级Web应用,但用于大型应用时需应对性能、代码管理和团队协作的挑战。通过集成扩展处理复杂需求,使用蓝图组织代码,以及引入缓存优化性能,结合明确的代码规范和开发流程,可有效应对挑战,构建高效稳定的应用。
15 5
|
1天前
|
数据库连接 Python
Flask 框架入门与实践:构建你的第一个 Web 应用
【5月更文挑战第18天】本文介绍了使用 Flask 框架构建第一个 Web 应用的步骤。首先通过 `pip install Flask` 安装框架,然后编写基本的 Python 代码创建应用,包括定义路由和响应。示例展示如何显示 &quot;Hello, World!&quot;,并扩展到显示用户信息的功能。利用模板(如 `index.html`)可使页面更丰富。随着学习深入,可以利用 Flask 的更多特性,如表单处理和数据库连接,来构建更复杂的 Web 应用。本文旨在激发读者对 Flask 和 Web 开发的兴趣,鼓励不断探索和实践。
15 7
|
2天前
|
存储 前端开发 网络协议
所有的 Web 应用其实就是一个 socket 服务端, 而用户使用的浏览器就是一个 socket 客户端程序
所有的 Web 应用其实就是一个 socket 服务端, 而用户使用的浏览器就是一个 socket 客户端程序
6 0
|
2天前
|
前端开发 Java Go
从前端到后端:构建现代化Web应用的技术实践
本文将介绍如何通过前端和后端技术相结合,构建现代化Web应用的技术实践。我们将探讨前端开发、后端架构以及多种编程语言(如Java、Python、C、PHP、Go)在构建高效、可扩展的Web应用中的应用。
|
3天前
|
JavaScript 前端开发 API
Vue中的组件:构建现代Web应用的基石
Vue中的组件:构建现代Web应用的基石
|
3天前
|
前端开发 JavaScript 开发者
深入理解MVC和MVVM:构建现代Web应用的利器
深入理解MVC和MVVM:构建现代Web应用的利器
|
4天前
|
JavaScript 前端开发 开发者
什么是 web 应用的 composable 特性
什么是 web 应用的 composable 特性
10 0