毕业设计 SSL 学习

  毕业设计是和同学一起做一个项目管理系统。这个系统介绍就先跳过,直接进入与本贴相关的内容。

   考虑到安全性,这个系统希望在数据敏感的模块用ssl实现数据加密安全。我分配到这个任务之前对这块可是完全不懂,没有办法,接了任务也只有硬着头皮做。
   现在把几天下来的ssl相关的东西记录下来,免得以后忘记。

ssl杂记

ssl是介于通讯层和应用层之间的,应用起来很简单,在电子商务中应用广泛。但是它是能保证数据的保密性,完整性,但是不能对信息偷听进行监测。

web服务器上实现ssl安全服务的步骤如下:

1,使用密钥管理器生成一个密钥对文件和一个请求文件。可以用openssl来做,网上有一个已经编译好的windows下的可执行文件,里面可以直接生成这步需要的东西。地址如下:http://thinkbase.net/w/main/Wiki?Tomcat5SSL_ServerAndClient,把里面的工具包下下来运行里面的bat文件就可以生成密钥文件和请求文件了。

2,从一个认证机构获得一个证书,当然你也可以用openssl自己生成证书,然后自己给自己验证(这种方法当然作为商业用途显然不妥,作为测试还是可以的。另外,openssl是免费的)

3,在你的服务器上安装新获得的证书。http://thinkbase.net/w/main/Wiki?Tomcat5SSL_ServerAndClient,在这个例子中有告诉你在tomcat下怎样部属生成的密钥文件。

4,激活web服务文件夹中的ssl安全功能。

注意:先将证书导入IE,(不导入也可以,让IE弹出证书选择选项)。访问的时候要求用https来访问,当然,你也可以在服务器端对http访问地址进行选择,将其redirect 到https上面来。在ruby下面有一个免费的插件ssl_requirement(http://dev.rubyonrails.org/svn/rails/plugins/ssl_requirement/),很小,用来控制访问请求在http和https之间的过滤,使用非常方便。使用方法如下:
首先,
在自己的控制器里面导入ssl_requirement(首先要将ssl_requirement.rb文件加入到lib目录下)
在自己的控制器头部定义哪些action是到https的,哪些是到http的,格式如下:
ssl_requird [:action1, :action2 [...]]
ssl_allowed [:action_a, :action_b [...]]
eg.
   ssl_required :login,:changeInfo
   ssl_allowed :index, :hello

然后在自己的控制器里面定义相应的action
给一个完整的例子如下:
建立一个控制器account
class AccountController < ApplicationController  
  ssl_required :signup, :payment     #signup,payment会被跳转到https下面
  ssl_allowed :index   #这个就不用跳转,直接用http访问即可。
 
  def signup  
    # Non-SSL access will be redirected to SSL
   
  end  
 
  def payment  
    # Non-SSL access will be redirected to SSL  
  end  
 
  def index  
    # This action will work either with or without SSL
  end 
end

 

  现在我也只是照着网上的例子在webrick下实现了ssl(用openssl),但是要将其用到实际中去还是有很长一段路走。

在webrick下面实现ssl时还参考了下面的文章:

http://d.hatena.ne.jp/elm200/20070428/1177752908 ,这个篇日文,里面提供了两段代码片断,第一个代码片段是个脚本,运行它会在控制台下打印私钥和公钥。第二个片段是用来启动webrick ssl服务的,新建RAILS_ROOT/script /webrick_ssl文件,将第二段代码粘到webrick_ssl下面,运行这个文件然后就可以访问https://localhost:3500/ 目录了,因为没有提供认证服务,所以IE会提示无效证书。当然,这些都是依赖于openssl动态调用库的。网上有编译好的windows下的openssl的dll。http://www.deanlee.cn/programming/openssl-for-windows/ ,openssl编译好的windows二进制文件。

自己在netbean6.01下安装jruby-openssl插件后一直无法运行上面的例子,自己另外装了ruby ,rails 然后才将这个例子跑起来。

如果要在tomcat5.x下运行ssl服务,参考http://thinkbase.net/w/main/Wiki?Tomcat5SSL_ServerAndClient+%E5%9C%A8+Tomcat+5.5+%E4%B8%8A%E7%9A%84%E9%85%8D%E7%BD%AE%E5%AE%9E%E4%BE%8B 就可以了,前提是你要先看http://thinkbase.net/w/main/Wiki?Tomcat5SSL_ServerAndClient 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值