`
gauss2008
  • 浏览: 40949 次
  • 性别: 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安全体系》做的一个测试项目,只是为电子平台系统的框架构建提供一个参考。


分享到:
评论

相关推荐

    linux下搭建CA认证服务器并认证服务.doc

    通过以上步骤,你已经在Linux环境下建立了一个CA认证服务器,并为其认证的服务颁发了证书。这为你的网络环境提供了基础的安全保障,确保了数据传输的机密性和完整性。然而,实际操作时,请根据你的具体需求和安全...

    可直接运行 基于MATLAB的CA模拟仿真案例程序,含表面张力,渗流集群等 适合CA入门学习 含程序源代码.rar

    2. **gas2.m**:这个名字可能代表气体动力学的一个例子,CA可以用来模拟气体粒子的行为,例如扩散和碰撞。 3. **CAsurfaceT.m**:这个文件很可能是关于表面张力的CA模拟,可能通过模拟液体表面的形状变化来展示这一...

    zhihuan-.rar_CA认证_C++_

    通常,单表置换被用于更复杂的加密算法中作为其中一个步骤,例如凯撒密码(Caesar Cipher)就是一个简单的例子,通过固定位移对字母进行替换。 在C++编程语言中实现这样的算法,需要理解基本的字符处理、字符串操作...

    PKI系统的常用信任模型

    这里有一个例子,说明在认证机构的严格层次结构模型中进行认证的过程。一个持有根 CA 公钥的终端实体 A 可以通过下述方法检验另一个终端实体 B 的证书。假设 B 的证书是由 CA2 签发的,而 CA2 的证书是由 CA1 签发的...

    cookie概述、简单例子

    在给定的“CookieInsertProject”压缩包中,可能包含了一个实际的项目,该项目可能是一个简单的Web应用程序,用于演示如何在服务器端设置和读取Cookie。通过分析和运行该项目,你可以更深入地理解Cookie的工作原理...

    电子商务鉴别和认证技术.pptx

    此外,还介绍了各种电子商务安全技术,如防火墙、入侵检测系统、安全协议等,它们共同构建了一个保护电子商务环境的防护网。 2. **加密和密码体系**:这部分详细讲解了加密技术的基础,包括单钥密码体系,如DES和...

    CA加密网络安全HTTPSSSL安全传输协议SSL和TLS及WTLS的原理.docx

    单向散列函数便可用于此用途,一个典型的例子是我们熟知的 MD5,它产生 128 位的摘要,在现实中用的更多的是安全散列算法(SHA),SHA 的早期版本存在问题,目前用的实际是 SHA-1,它可以产生 160 位的摘要,因此比...

    asp.net(C#)工商银行银企互联 例子

    3. **C#客户端实现**:使用C#,你可以创建一个客户端程序来调用银企互联接口。这通常涉及网络请求、XML或JSON解析、错误处理等技术。例如,可以使用HttpClient类发送HTTP请求,Newtonsoft.Json库解析JSON响应。 4. ...

    openssl数据加解密及证书使用例子

    - 签发服务器证书:`openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt` - 签发客户端证书:`openssl x509 -req -in client.csr -CA ca.crt -CAkey ca.key -...

    Openssl实现双向认证教程(附服务端客户端代码)

    下面是一个简单的服务端示例: ```cpp #include #include void ShowCerts(SSL *ssl) { // 省略... } int main() { // 初始化SSL上下文,加载证书和私钥,设置监听套接字等 SSL_CTX *ctx = SSL_CTX_new...

    WebService绕过https证书认证方法.docx

    1. **HostnameVerifier**: `hv = new HostnameVerifier()` 创建了一个新的HostnameVerifier实例,这是一个接口,用于验证服务器的主机名是否与证书中提供的主机名匹配。在这个例子中,无论服务器的主机名是什么,...

    信息安全认证习题参考答案.doc

    这份文档似乎是一份关于信息安全认证的练习题及参考答案,涵盖了多个章节的知识点,包括数论基础、密码学中的经典算法(如DES、RSA)、消息认证、数字签名以及网络安全协议如SSL和Kerberos。这些知识点在信息安全...

    wcf x.509证书认证

    总结来说,这个压缩包提供的示例可能包含了一个完整的WCF服务和客户端,它们使用X.509证书进行安全通信。通过分析和学习这个示例,开发者可以深入理解WCF服务的安全配置和证书的使用,为实际项目提供安全保障。

    java一机一密实现代码

    Java 一机一密实现是安全领域中的一个重要概念,它主要应用于确保每个设备拥有独一无二的安全凭证,以增强系统的安全性。在 Java 中,我们通常通过创建和管理自签名证书来实现这一目标。以下是对 Java 实现一机一密...

    易语言-Socket实现OpenSSL双向认证连接

    源码中给出的例子可能只是一个基础的框架,实际应用中可能需要根据具体需求进行大量的修改,比如处理证书链、错误处理、证书更新等。 此外,你可能还需要考虑以下几点: 1. 客户端证书的管理:客户端需要有自己的...

    认证下载:认证下载

    8. **信任链**:在认证下载过程中,建立一个信任链至关重要。这涉及对证书颁发机构(CA)的信任,因为它们签发和管理用于数字签名的证书。 9. **风险防范**:认证下载有助于降低钓鱼攻击、中间人攻击等网络安全威胁...

    tlslite 经典例子

    tlslite是一个Python实现的轻量级TLS(Transport Layer Security)库,用于在安全通信中建立加密连接。它主要用于处理SSL/TLS协议,这些协议广泛应用于互联网上的安全通信,如HTTPS、SMTPS、IMAPS等。tlslite库不仅...

    利用证书收发签名与加密邮件

    在Windows 2003 Server上安装CA服务,配置为一个内部的企业根CA,这样我们可以自行签发和管理邮件证书。 证书的申请与颁发是实现安全邮件的关键步骤。每个邮件用户需要向CA申请证书,包含他们的公钥和身份信息。CA...

    HP-Socket-5.5.1中文模块带例子-易语言

    "HP-Socket-5.5.1中文模块带例子-易语言" 是一个专为易语言用户设计的网络通信库,主要用于实现客户端和服务器端之间的数据传输。这个模块集成了详细的示例,使得用户能够更直观地理解如何使用其功能,即使对网络...

Global site tag (gtag.js) - Google Analytics