登录证书验证

需求:
为了提高安全性.
某人拥有某个证书,才能进行登录.

环境:
Tomcat

设计:
采用SSL,https登录.
服务器验证证书.(貌似SSL里面自己做了验证)
读取证书信息,检查是否该对应登录人员.
   
实现:
1.下载openssl
编译好的openssl下载:
http://www.slproweb.com/products/Win32OpenSSL.html

2.生成证书:
参考文章http://www.ibm.com/developerworks/cn/security/se-tcssl/index.html
生成3个证书:CA证书,服务器证书,客户端证书.

3.修改tomcat的server.xml文件

4.在servlet里面读取
boolean isSecure = request.isSecure();

String certAttribute = "javax.servlet.request.X509Certificate";
X509Certificate[] certificate =
(X509Certificate[]) request.getAttribute(certAttribute);

5.添加证书:
参考文章http://www.ibm.com/developerworks/cn/security/se-tcssl/index.html
生成客户端证书.
在另一个客户端安装,客户端就可以正常访问了.

要点:
1.生成CA,服务器,客户端证书.
很混乱的关系.

问题:
1.serlet获取证书对象,
java.security.cert.X509Certificate certs = (java.security.cert.X509Certificate) request.getAttribute("javax.servlet.request.X509Certificate");
提示java.lang.ClassCastException: [Ljava.security.cert.X509Certificate
得到的数组,改成如下:
java.security.cert.X509Certificate[] certs = (java.security.cert.X509Certificate[]) request.getAttribute("javax.servlet.request.X509Certificate");

2.keytool常用命令
keytool -genkey 生成文件

改进:
1.都是手工生成客户端,怎么自动生成客户端证书.
2.SSL与JSSE的关系.
JSSE(JAVA Secure Socket Extension)
SSL (Secure Socket Layer)
JSSE provides a framework and an implementation for a Java language version of the SSL and TLS protocols.
3.IE可能导入自定义证书出问题.
4.关于密码
5.证书过期

参考文章:
配置Tomcat 4使用SSL
http://www.ibm.com/developerworks/cn/security/se-tcssl/index.html

tomcat实现SSL配置!(双向)
http://www.dedecms.com/web-art/fuwuqi/20060913/26272.html
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值