`
gauss2008
  • 浏览: 40071 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

一个简单的CA认证例子

阅读更多
日期
200581
作者
gauss
类型
安全认证
内容
系统如何应用集中认证
系统如何应用集中认证
一、        标签二应用集中认证的流程:
二、        制作认证服务器的流程(以下生成过程均在websphere6.0下进行的)
1.        开始所用程序—IBM Http Server—启动密钥管理实用程序
进入IKeyMan 如图:
2.        点击“密钥数据文件/新建”,选择密钥类型为CMS
3.        生成服务器私钥
点击确定,即如下一个界面
输入密码,选择“将密码存储到文件吗?”,单击确定
选择“密钥数据库内容”中下拉选项中的“个人证书请求”,点击新建生成证书请求文件
输入相关信息,保存。
4.        提交证书请求文件至CA生成服务器证书将生成的certreq.arm放送给信诚通,生成服务器证书。
5.        选择签署人证书选项,导入CA根证书选择签署人证书选项添加
浏览选择根证书,单击确定
6.        选择“个人证书”选项,导入CA颁发的证书选择“个人证书”选项接收
浏览选择由信诚通颁发的服务器证书。单击确定
完成了服务器证书的制作。
三、        配置SSL
1.         修改IBMHttpServer/conf/httpd.conf文件,在最下面增加:
LoadModule ibm_ssl_module modules/IBMModuleSSL128.dll
Listen 80
Listen 443
Keyfile F:/NEW/key.kdb
SSLDisable
SSLV2Timeout 100
SSLV3Timeout 1000
<VirtualHost *:80>
ServerName netsoft-4d52657
</VirtualHost>
<VirtualHost *:443>
ServerName netsoft-4d52657
SSLEnable
SSLClientAuth optional
</VirtualHost>
注意密钥文件是刚才通过ikeyman工具生成的密钥文件,服务名为主机名(底色为黄色部分是要根据实际情况要修改的)
2.         配置文件的正确与否可通过bin/apachectl configtest进行测试
3.         使用bin/startServer.sh命令启动websphere
4.         IE内键入http://主机域名:9090/admin,使用root用户登录管理控制台
5.         点击环境/虚拟主机,选择default_host,进入“主机别名”选项,增加443端口。
6.         点击“环境/更新WEB服务器插件”,点击确定更新插件
7.         重启websphere,然后使用apachecrl start启动IBMHttpServer服务器
8.         在客户端IE地址栏内键入https://主机域名/snoop,测试SSL配置是否正确
四、        客户端个人证书
              到信诚通的网站上面下载个人证书申请表,填写完相关内容后发送给信诚通相关人       员,制作证书,我们在测试集中认证的时候采用的是软证书。附带有一个我申请的人证    书。
五、        安装认证页面
1.  拷贝以下文件至%WebSphere%/java/jre/lib/ext目录下(这些jar包均在所附的lib里面)
comm.jar
jCert.jar
js.jar
local_policy.jar
rt.jar
US_export_poliyc.jar
Am.jar
Jce1_2_2.jar
Jnet.jar
Jsse.jar
Poolman.jar
Sunjce_provider.jar
2.  拷贝cacerts%WebSpere%/java/jre/security(没有找到我想应该是:%WebSpere%/java/jre/lib/security
3.  修改%WebSpere%/java/jre/security/java.security文件(没有找到我想应该是:%WebSpere%/java/jre/lib/security/java.security,添加security.provider.n=sun.security.provider.Sun,其中n根据文件中原有的JCE priovide数量确定
4.  拷贝asaservice.property文件至%WebSpere%/property目录,并根据实际的部署环境修改文件(参数说明另附说明文件)
5.  发布auth.war,虚拟目录定为auth
auth.war的作用就是通过调用https://主机域名/default.jsp?id=labelid=label,就是转发的一个标志,具体定义,参考参数的说明)来读取客户端的个人证书信息并连接认证服务器进行验证,产生tokenID,然后将tokenID放到客户端的cookie中,并转发到相应的页面,其中这个页面是在asaserver.property所定义的。
6.  重启WebSphere
六、        安装认证系统需配置的参数(asaserver.property文件中所定义的
1.  :登录失败后显示的网页地址;(我们应当设置为系统的首页面)LOGIN_FAILURE
2.  tokenid的生存时间,单位为秒,-1表示关闭当前浏览器后清除;MAXAGE
3.  :登录后需要访问的应用系统的域,auth.war部署所在电脑的域名。DOMAIN
4.  default.jsp需放在同一虚拟目录下。ASAService.jsp
5.  为首页传至认证网页的参数名。例如现在我们用id,当然也可以设置为其它。PROPNAME
6.  为认证服务器的IPHOSTS
7.  定义参数值和实际网址的映射关系
如:label=http://主机域名:9080/LabelWeb/
在本系统中我们需要定义一下参数和实际网址的映射关系,
eplat= http://主机域名:9080/ePlatformTestWeb/login.jsp
七、     部署Label.ear,参考文档《Label的部署》
八、     安装客户端个人证书
双击个人证书:410221198104168832 张先亮
一路“下一步”直到完成
九、     登录项目:
1、                 登录系统主页面:通过urlhttp://主机域名:9080/ePlatformTestWeb/
登录。出现如下页面
2、                 进入系统
         根据你的用户类型来选择不同的登录入口,如上图,在主页面上提供了三个不同的系统入口,受理机构用户,企业登录,企业注册。我们不妨假设以受理机构的身份登录,点击“受理机构登录”的图片。
弹出页面:
确定
选择是
注:auth.war项目连接认证服务器对证书进行验证,若通过,测转发到标签系统的不同用户系统的主页面;由于我们这边配置有些问题,当auth.war项目执行到String tokenID = Login.auth(clientID,request.getRemoteAddr());系统出错,这个问题一直没有解决;然后我们采用信诚通的认证服务器,且auth.war部署在他们那边,通过信诚通提供的入口https://demo.itownet.cn/auth/default.jsp?id=itown11,虽然证书通过了验证且转发到了对应的页面,但是没有得到tokenID,与信诚通沟通交流后,还是没有解决这个问题,估计是域名的设置有问题。若采用他们的认证服务器,可以就这个问题继续与信诚通方面交涉。在我们作开发的时候,我修改了auth.war包,经证书的合法性验证方法修改了,不是通过认证服务器对证书进行验证,而是直接根据信诚通的根证书,对个人证书进行验证,通过根证书来验证个人证书是否是由这个根证书所签署,且有效期是否有效等等。验证通过后,将个人证书的信息放入到cookie中,而在系统调用信诚通提供的接口对用户进行二次验证的时候,我们注销了这个方法,而是采用一种变通的方法。就是若cookie中含有认证后的信息,就可以直接登录系统,若没有则返回系统的主页面。当然这种方法有着很大的缺陷,但这仅仅是我们应用在系统的开发阶段。真正具体到实际应用的时候,我们只需要将loginAction中调用信诚通提供的接口的地方取消注销就是,其它地方不要修改。
  采用我们的模式,在上图点击是以后,会出现如下页面
说明:
ePlatformTestWeb是我自己应用《电子平台的J2EE安全体系》做的一个测试项目,只是为电子平台系统的框架构建提供一个参考。


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics