一个简单的CA认证例子

日期
2005 8 1
作者
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=label id=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.  为认证服务器的IP HOSTS
7.  定义参数值和实际网址的映射关系
如: label=http:// 主机域名: 9080/LabelWeb/
在本系统中我们需要定义一下参数和实际网址的映射关系,
eplat= http:// 主机域名: 9080/ePlatformTestWeb/login.jsp
七、     部署 Label.ear ,参考文档《 Label 的部署》
八、     安装客户端个人证书
双击个人证书: XXXXXXX XXX
一路“下一步”直到完成
九、     登录项目:
1、                 登录系统主页面:通过 url http:// 主机域名: 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 安全体系》做的一个测试项目,只是为电子平台系统的框架构建提供一个参考。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值