登錄證書驗證

需求:
爲了提高安全性.
某人擁有某個證書,才能進行登錄.

環境:
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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章