如何实现安全web服务-阿里云开发者社区

开发者社区> 余二五> 正文

如何实现安全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,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
9494 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
13177 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
11507 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
6891 0
+关注
20382
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载