如何实现安全web服务

简介:
   SSL(Secure Sockets Layer)安全协议又叫“安全套接层协议”。它是在网络传输层之上提供的一种基于RSA和对称加密算法的,用于浏览器和Web服务器之间的安全连接技术,用来提供两个应用之间通信的保密,可信和身份认证。它被视为 Internet 上 Web 浏览器和服务器的标准安全性措施。
     HTTPS(Hypertext Transfer Protocol over Secure Socket Layer)是以安全为目标的http通道,即在http传输协议中加入ssl层,由于https的安全访问是基于ssl,因此要实现安全访问,要配置的就是让ssl如何工作。 https是由网景公司开发,现在它被广泛用于万维网上安全领域的通讯,例如网络银行等方面。 http是基于的tcp的80 端口,而https是基于tcp的443端口。 
安装mod_ssl 模块,建议使用yum来安装,因为安装此模块时会有一些依赖关系。 
yum install mod_ssl
如果使用rpm安装,还要安装的软件包有:
distcache-1.4.5-14.1.i386.rpm
确保http软件包已经安装过了。
要给客户端签发证书,首要前提服务器CA要有自签证书。因此首先来做的就是创建自签证书。
切换到/etc/pki/CA目录下,执行openssl –genrsa 1024 > private/cakey.pem
来生成一对密钥文件。
在图中可以看到创建的过程,完成后,到private目录下查看是否创建成功。也可以使用openssl –in cakey
clip_image001
接下来执行命令:
openssl req –new –x509 –key private/cakey.pem –out cacert.pem –days 3695
来生成一个待签名的 CA根证书,用来给其他申请者进行颁发证书。
clip_image003
在生成自签证书时,要填写证书信息以确保CA的真实性。红线框起来的是要填写的内容,在试验的时候可以有自己决定。
clip_image005
为了CA的证书安全性,建议将cakey.pem密钥文件的权限修改为600
clip_image006
接下来是编辑/etc/pki/tls/openssl.cnf 将里面的路径改为真实路径。
clip_image007
建立文件index.txt和serial 目的是存放颁发证书的信息。完成后,查看是否创建成功。
clip_image008
好了,CA的自签证书已经创建成功,接下来的CA任务就是给客户端的颁发证书了。但是在颁发证书之前,客户端要自己生成一对密钥文件,并向CA提出申请证书的请求。因此,下面要做的就是生成客户端的密钥,并且向CA提出申请了。具体步骤如下:
现在回到客户端,
切换到/etc/httpd目录下,创建ssl目录
clip_image009
执行命令:openssl –genrsa 1024 > http.key 来生成一对http协议的密钥文件。
clip_image010
密钥生成了,下一步就是向CA提出申请证书的请求了。具体命令如下:
openssl req –new –key httpd.key –out httpd.csr
clip_image012
申请证书,当然要填写申请者的信息了。
红线框起来的为示例。在信息题写完后,提示要输入密码,这个密码是用于保证证书安全性的密码,在查询修改密钥文件是会用到。这里就不再设定了。
clip_image014
现在回到服务器端。客户端的申请证书的请求已经到达CA处,那么CA该如何来给客户端签发证书呢?执行命令:
openssl ca –in httpd.csr –out httpd .crt –days 3655
有点错误了,该如何来解决呢?先看看出现错误的原因。错误提示是说在/etc/pki/CA/目录下,没有newcerts文件,此时,可以看到,newcerts目录是用来存放CA签发证书信息的,再联想到前面生成CA自签证书后创建的index.txt文件和serial文件,因此可以总结出:
CA在颁发证书时要用到三个文件: newcerts、index.txt和serial
如果在前面不创建index.txt文件和serial文件,在此处也会出现找不到index.txt文件和serial文件的。
clip_image016
错误既然找到了,那么就去/etc/pki/CA目录下创建newserts目录就行了。
clip_image017
再来执行签发证书的命令,OK!执行成功啦!
clip_image019
接下来就是一些交互过程,询问是否确认给客户端颁发证书。当然要颁发了,输入y就行了(如果不想颁发,也可以输入n)。
clip_image021
来查看一下刚刚生成的证书吧?
可以使用openssl x509 -in httpd.crt -noout -text查看生成的证书的信息 
也可以使用下面的命令查看证书持有人的标识信息 
openssl x509 -in httpd.cst -noout -subject
clip_image022
证书生成了,可是以前用的http协议不知道已经生成证书了。因为在默认情况下http协议是关闭支持ssl安全访问的。因此,下面要做的就是让http协议记住以后访问服务器要用https协议。具体操作如下:
切换到/etc/httpd/conf.d/目录下,编辑ssl.conf文件
clip_image023
找到SSLCertificateFile 和SSLCertificateKeyFile这两行,没有修改之前是这样的
clip_image025
把这两行修改为:SSLCertificateFile /etc/httpd/ssl/httpd.crt
SSLCertificateKeyFile /etc/httpd/ssl/httpd.key
clip_image027
修改完成后,保存退出。重启http服务。
clip_image029
到此为止,所有的配置工作已经完成,嗯,是该验证一下的时候了!
在另外一台机器上,打开浏览器,输入IP地址,为了验证试验效果,先以http协议来访问服务器,在之前,服务器端已写好测试网页。
clip_image031
再来用https协议访问一下服务器,看看会出现什么效果呢?
选择“是”进入下一步。也可以先选择“查看证书”来查看一下证书信息来验证一下刚才的配置。
clip_image033
再次选择“是”。
clip_image034
OK,通过https协议也可以访问到服务器端的测试页,那么与http访问的呢?留意下图中右下角的锁标志,这就代表访问协议是基于加密的安全访问。在实际生活中,访问一些支付网站会见到这样的标志。
clip_image036









本文转自 linuxtro 51CTO博客,原文链接:http://blog.51cto.com/linuxtro/287003,如需转载请自行联系原作者
目录
相关文章
|
21天前
|
中间件 Go
Golang | Gin:net/http与Gin启动web服务的简单比较
总的来说,`net/http`和 `Gin`都是优秀的库,它们各有优缺点。你应该根据你的需求和经验来选择最适合你的工具。希望这个比较可以帮助你做出决策。
65 35
|
1月前
|
安全 Linux API
Burp Suite Professional 2025.4 发布 - Web 应用安全、测试和扫描
Burp Suite Professional 2025.4 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
81 6
Burp Suite Professional 2025.4 发布 - Web 应用安全、测试和扫描
|
3月前
|
人工智能 Linux iOS开发
Burp Suite Professional 2025.2 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
Burp Suite Professional 2025.2 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
129 12
Burp Suite Professional 2025.2 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
|
3月前
|
数据采集 Web App开发 API
FastAPI与Selenium:打造高效的Web数据抓取服务 —— 采集Pixabay中的图片及相关信息
本文介绍了如何使用FastAPI和Selenium搭建RESTful接口,访问免版权图片网站Pixabay并采集图片及其描述信息。通过配置代理IP、User-Agent和Cookie,提高爬虫的稳定性和防封禁能力。环境依赖包括FastAPI、Uvicorn和Selenium等库。代码示例展示了完整的实现过程,涵盖代理设置、浏览器模拟及数据提取,并提供了详细的中文注释。适用于需要高效、稳定的Web数据抓取服务的开发者。
180 15
FastAPI与Selenium:打造高效的Web数据抓取服务 —— 采集Pixabay中的图片及相关信息
|
3月前
|
网络协议 Java Shell
java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
155 7
|
2月前
|
安全 大数据 数据挖掘
课时9:阿里云Web应用防火墙:全面保障网站的安全与可用性
阿里云Web应用防火墙(WAF)基于阿里巴巴十年攻防经验,提供全面的网站安全防护。它通过Web应用防护、CC攻击防护和业务风控,有效应对各类网络威胁,确保网站的安全与可用性。智能双引擎技术降低误报率,实时数据分析和虚拟补丁更新保障系统安全。WAF已成功护航多个重大活动,为企业提供高效、简便的安全解决方案。
|
5月前
|
缓存 安全 搜索推荐
阿里云先知安全沙龙(北京站) ——浅谈Web快速打点
信息收集是网络安全中的重要环节,常用工具如Hunter、Fofa和扫描工具可帮助全面了解目标系统的网络结构与潜在漏洞。遇到默认Nginx或Tomcat 404页面时,可通过扫路径、域名模糊测试、搜索引擎缓存等手段获取更多信息。AllIN工具(GitHub: P1-Team/AllIN)能高效扫描网站路径,发现敏感信息。漏洞利用则需充分准备,以应对突发情况,确保快速拿下目标站点。 简介:信息收集与漏洞利用是网络安全的两大关键步骤。通过多种工具和技术手段,安全人员可以全面了解目标系统,发现潜在漏洞,并制定有效的防御和攻击策略。
|
5月前
|
安全 应用服务中间件 网络安全
实战经验分享:利用免费SSL证书构建安全可靠的Web应用
本文分享了利用免费SSL证书构建安全Web应用的实战经验,涵盖选择合适的证书颁发机构、申请与获取证书、配置Web服务器、优化安全性及实际案例。帮助开发者提升应用安全性,增强用户信任。
|
6月前
|
Go UED
Go Web服务中如何优雅平滑重启?
在生产环境中,服务升级时如何确保不中断当前请求并应用新代码是一个挑战。本文介绍了如何使用 Go 语言的 `endless` 包实现服务的优雅重启,确保在不停止服务的情况下完成无缝升级。通过示例代码和测试步骤,详细展示了 `endless` 包的工作原理和实际应用。
123 3
|
6月前
|
JSON Go UED
Go Web服务中如何优雅关机?
在构建 Web 服务时,优雅关机是一个关键的技术点,它确保服务关闭时所有正在处理的请求都能顺利完成。本文通过一个简单的 Go 语言示例,展示了如何使用 Gin 框架实现优雅关机。通过捕获系统信号和使用 `http.Server` 的 `Shutdown` 方法,我们可以在服务关闭前等待所有请求处理完毕,从而提升用户体验,避免数据丢失或不一致。
81 1

热门文章

最新文章