日期
|
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
5.
点击环境
/
虚拟主机,选择
default_host
,进入“主机别名”选项,增加
443
端口。
6.
点击“环境
/
更新
WEB
服务器插件”,点击确定更新插件
7.
重启
websphere
,然后使用
apachecrl start
启动
IBMHttpServer
服务器
四、
客户端个人证书
到信诚通的网站上面下载个人证书申请表,填写完相关内容后发送给信诚通相关人
员,制作证书,我们在测试集中认证的时候采用的是软证书。附带有一个我申请的人证
书。
五、
安装认证页面
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
安全体系》做的一个测试项目,只是为电子平台系统的框架构建提供一个参考。